热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

当前位置 :| 主页>Linux教程>编程开发>JAVA>

【SSH】Struts+Spring+Hibernate整合例子

来源: 作者: 时间:2008-05-30 Tag: 点击:

  五、在applicationContext.xml配置action    
      这里我们先在 action类里添加一些业务逻辑,代码如下:    
      public class UserAction extends Action {    
    
      
private UserDAO userDao;    
      
private Userinfo user;    
    
      
public ActionForward execute(ActionMapping mapping, ActionForm form,    
         HttpServletRequest request, HttpServletResponse response) 
{    
     UserForm userForm 
= (UserForm) form;    
     
//封装数据    
     user.setName(userForm.getName());    
         user.setPassword(userForm.getPassword());    
         
if(userDao.regist(user)){    
             
return mapping.findForward("success");    
         }
    
         
return mapping.findForward("error");    
      }
    
    
      
public Userinfo getUser() {    
         
return user;    
      }
    
      
public void setUser(Userinfo user) {    
         
this.user = user;    
      }
    
      
public UserDAO getUserDao() {    
         
return userDao;    
      }
    
      
public void setUserDao(UserDAO userDao) {    
         
this.userDao = userDao;    
      }
}
    
      这里使用setter实现依赖注入了两个bean,接下来配置applicationContext.xml    
      
<beans xmlns="略……">    
      
<!- 数据源 -->    
      
<bean id="dataSource"    
         
class="org.apache.commons.dbcp.BasicDataSource">    
         
<property name="driverClassName"    
             value
="com.mysql.jdbc.Driver">    
         
</property>    
          
<property name="url"    
  value
="jdbc:mysql://localhost:3306/demo"></property>    
         
<property name="username" value="root"></property>    
         
<property name="password" value="root"></property>    
      
</bean>    
      
<!--  sessionFactory -->    
      
<bean id="sessionFactory" class=    
  
"org.springframework.orm.hibernate3.LocalSessionFactoryBean">    
  
<property name="dataSource">    
             
<ref bean="dataSource" />    
         
</property>    
         
<property name="hibernateProperties">    
             
<props>    
                
<prop key="hibernate.dialect">    
                    org.hibernate.dialect.MySQLDialect    
                
</prop>    
             
</props>    
         
</property>    
         
<property name="mappingResources">    
             
<list>    
                
<value>org/chenwj/vo/Userinfo.hbm.xml</value>    
             
</list>    
         
</property>    
      
</bean>    
      
<!--  数据库操作类  -->    
      
<bean id="userDao" class="org.chenwj.dao.UserDAO">    
         
<property name="sessionFactory">    
             
<ref local="sessionFactory" />    
         
</property>    
      
</bean>    
      
<!--  action需要注意:这里是name属性不是ID,同时要和struts-config.xml    
        对应的 action path属性值相同,斜线也是必需的,通过这个属性scope
=    
        
"prototype" 每次获取bean实例时都会产生新的实例,默认是单例-->    
      
<bean name="/user" class="org.chenwj.struts.action.UserAction"    
         
abstract="false" lazy-init="default" autowire="default"    
         scope
="prototype" dependency-check="default">    
         
<property name="userDao" ref="userDao" />    
         
<property name="user" ref="user" />    
      
</bean>    
      
<bean id="user" class="org.chenwj.vo.Userinfo" abstract="false"    
         lazy
-init="default" autowire="default"    
           dependency
-check="default">    
      
</bean>    
  
</beans>    
      到此所有的配置已经完成,测试:    
      HTTP Status 
404 - Servlet action is not available    
  The requested resource (Servlet action is not available) is not available    
  这个错误是大部初学者整合 SSH 时都会遇到的问题    
    
      首先建议你使用测试类进行测试,这样我们可以很快找到错误所在的地方    
  
public static void main(String[] args) {    
      ApplicationContext context 
= new FileSystemXmlApplicationContext(    
                
"/WebRoot/WEB-INF/applicationContext.xml");    
          UserDAO dao 
= (UserDAO)context.getBean("userDao");    
         Userinfo user 
= new Userinfo();    
         user.setName(
"aaa");    
         user.setPassword(
"bbb");    
         
boolean a = dao.regist(user);    
         
if(a){    
             System.out.println(
"OK");    
         }
    
     }
    
  如果这里没出错,那么请你好好检查你的配置文件,是否写错或少了些什么东东了    
      这里出的错误也跟使用的版本有关系,这里报的错一般都是说找不到XX类所报的异常    
  那么请检查lib下有没commons
-pool-1.2.jar包,如没请导入,这个问题也有可能是包    
  之间的
****,删除这个包hibernate-annotations.jar    
    
  六、.sql文件、.jsp文件    
  create table userinfo(    
         id 
int(10) not null auto_increment,    
 name varchar(
20),    
 password varchar(
20),    
 PRIMARY KEY  (id))    
     
<body>    
        
<html:form action="/user">    
            name : 
<html:text property="name"/><br/>    
            password : 
<html:password property="password"/><br/>    
            
<html:submit/><html:cancel/>    
        
</html:form>    
     
</body>  
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
栏目列表