struts+spring+hibernate

     网上关于这个题目的文章多如牛毛,我把我学到的一点皮毛总结一下,以供以后查看,下面是一个完整的小例子,有点罗嗦:

     我用的开发工具是myeclipse,首先新建一个web project  sshTest, 然后添加strurs框架,我用的是struts1.2,所以验证文件validator-rules.xml要用1.2的,不然验证可能不起作用,可以参考我以前写的关于验证的文章。建立一个登录页面login.jsp,当然你如果需要验证的话,你的Form就要选择org.apache.struts.validator.ValidatorForm。

       接着增加Spring框架,在弹出的对话框中,选择1,2,3和最后一个选项,因为这个例子只用到了这四个类库,然后选择copy 到/WebRoot/WEB-INF/lib,点击下一步,把applicationContext.xml放到sshTest下的/WebRoot/WEB-INF下,这个一定要这样做,不然在下面增加hibernate时就找不到applicationContext.xml了,因为在这个project里applicationContext.xml代替了Hibernate.cfg.xml.

    第三步就是增加hibernate框架,选中给出的三个类库,并选择copy 到/WebRoot/WEB-INF/lib,点击下一步,选择第二个选项Spring configuration files,点击下一步,选择第二个选择,Existing Sping configuration file.并填写SessionFactoryID:sessionFactory,点击下一步,填写数据源,第一项beanId: datasource, 点击下一步,去掉create sessionfaction class前的对号,即不选择创建,到此完成了hibernate的添加。

    下面是具体代码的编写,在struts-config.xml里要写个插件,  (plug-in className="org.springframework.web.struts.ContextLoaderPlugIn")
    (set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /)
  (/plug-in)

    
这样struts和spring整合到一起,并把前面属性中的type属性改成type="org.springframework.web.struts.DelegatingActionProxy",即struts中的请求有这个代理类接收。在applicationContext.xml里新建个bean,//(bean name="/login" class="com.guorui.struts.action.LoginAction" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default")
     接着我们在数据库连接中找到需要的表,点击右键产生mapping映射,在弹出的对话框里要选择springDAO.它把hibernate里的session封装了。

     在LoginAction中要用到springDAO, 在这个例子中是UserDAO,代码如下:

public class LoginAction extends Action {

    private  UsersDAO  dao;
   
 public UsersDAO getDao() {
  return dao;
 }

 public void setDao(UsersDAO dao) {
  this.dao = dao;
 }

 public ActionForward execute(
  ActionMapping mapping,
  ActionForm form,
  HttpServletRequest request,
  HttpServletResponse response) {
  LoginForm loginForm = (LoginForm) form;
  String name=loginForm.getName();
   String psd=loginForm.getPassword();
  Users users=new Users();
  users.setName(name);
  users.setPassword(psd);
  dao.save(users);
  
  return null;
 }

}

 此时在修改applicationContext.xml中的代码如下:下加入属性 
   (bean name="/login" class="com.guorui.struts.action.LoginAction" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default")
    (property name="dao")
     (ref bean="UsersDAO"/)
    (/property)
 (/bean)

是把映射文件Users.hbm.xml中的第一行代码中 table后的属性删掉,不然的话找不到数据库

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值