为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Struts1¸2 + Spring2¸0 + Hibernate 3¸1 整合 2¸0版本

2018-04-29 12页 doc 93KB 7阅读

用户头像

is_314871

暂无简介

举报
Struts1¸2 + Spring2¸0 + Hibernate 3¸1 整合 2¸0版本Struts1¸2 + Spring2¸0 + Hibernate 3¸1 整合 2¸0版本 SSH整合2.0版 作者:张森炜 Struts1.2 + Spring2.0 + Hibernate 3.1 整合 2.0版本 开发环境: MyEclipse Blue Edition 版本为 6.5.0.Blue Milestone-1 MySQL 5.0版 Struts 1.2版 Spring 2.0版 Hibernate 3.1版 在上一次 (第一次整合网址:) 的开发基础之上,这次我们对上次整合后的SSH框架进行...
Struts1¸2 + Spring2¸0 + Hibernate 3¸1 整合 2¸0版本
Struts1¸2 + Spring2¸0 + Hibernate 3¸1 整合 2¸0版本 SSH整合2.0版 作者:张森炜 Struts1.2 + Spring2.0 + Hibernate 3.1 整合 2.0版本 开发环境: MyEclipse Blue Edition 版本为 6.5.0.Blue Milestone-1 MySQL 5.0版 Struts 1.2版 Spring 2.0版 Hibernate 3.1版 在上一次 (第一次整合网址:) 的开发基础之上,这次我们对上次整合后的SSH框架进行一下系统提升,这次的提升主要对框架进行了以下3处的完善 (1)建立公共函数类 (2)加入DAO适配器 (3)加入事务和拦截器 1、在com.address.hibernate.dao 包中新建一个接口,接口的名字为 IAddressDAO,具体代码如下: package com.address.hibernate.dao; import java.util.List; import com.address.hibernate.beans.Linkman; public interface IAddressDAO { // 添加一个联系人 public void addLinkMan(Linkman linkman); // 删除一个联系人 public void delete(String id); // 修改一个联系人 public void update(Linkman linkman); // 获取所有联系人 public List getAllLinkman(); // 根据ID获取一个联系人 public Linkman getLinkman(String linkmanid); } 2、让com.address.hibernate.dao 包中的AddressDAO类实现 IAddressDAO接口,具体代码如下: package com.address.hibernate.dao; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.address.hibernate.beans.Linkman; public class AddressDAO extends HibernateDaoSupport implements SSH整合2.0版 作者:张森炜 IAddressDAO{ // 添加一个联系人 public void addLinkMan(Linkman linkman) { this.getHibernateTemplate().save(linkman); } // 删除一个联系人 public void delete(String id) { Object p = this.getHibernateTemplate().load(Linkman.class, new Integer(id)); this.getHibernateTemplate().delete(p); } // 修改一个联系人 public void update(Linkman linkman) { this.getHibernateTemplate().update(linkman); } // 获取所有联系人 public List getAllLinkman() { return getHibernateTemplate().find("from Linkman"); } // 根据ID获取一个联系人 public Linkman getLinkman(String linkmanid) { return (Linkman) getHibernateTemplate().get(Linkman.class, new Integer(linkmanid)); } } 3、在com.address.struts.action包中新建一个类 SSH整合2.0版 作者:张森炜 4、为这个起个名字为:BaseAction 5、这个类中可以将一些公用的方法进行抽取出来,比如相对session的操作我们可以进行一下封装或者对reqeust进行一下封装。具体代码如下: package com.address.struts.action; import javax.servlet.http.HttpServletRequest; import org.apache.struts.actions.DispatchAction; /* * 这个类中可以将一些公用的方法进行抽取出来,比如相对session的操作我们可以进行一下 封装或者 * 对reqeust进行一下封装。 */ public class BaseAction extends DispatchAction { /** * 设置 request 的属性 * * @param request * @param key * @param obj */ protected void setRequest(HttpServletRequest request, String key, Object obj) { request.setAttribute(key, obj); } /** * 判断某个值是否在 request 中存在 * * @param request SSH整合2.0版 作者:张森炜 * @param key * @param obj */ protected boolean isExistRequest(HttpServletRequest request, String key) { if (request.getAttribute(key) != null) { return true; } else { return false; } } /** * 获取 request 中某个值 * * @param request * @param key * @return */ protected Object getRequest(HttpServletRequest request, String key) { return request.getAttribute(key); } /** * 设置 session 的属性 * * @param request * @param key * @param obj */ protected void setSession(HttpServletRequest request, String key, Object obj) { request.getSession().setAttribute(key, obj); } /** * 判断某个值是否在 session 中存在 * * @param request * @param key * @param obj */ protected boolean isExistSession(HttpServletRequest request, String key) { if (request.getSession().getAttribute(key) != null) { return true; } else { return false; } } /** * 获取 session 中某个值 * * @param request * @param key * @return */ protected Object getSession(HttpServletRequest request, String key) SSH整合2.0版 作者:张森炜 { return request.getSession().getAttribute(key); } } 6、打开com.address.struts.action 包修改 AddressAction 类,修改后的详细代码如下: package com.address.struts.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.address.hibernate.dao.IAddressDAO; import com.address.hibernate.beans.Linkman; import com.address.hibernate.dao.AddressDAO; import com.address.struts.form.AddressForm; public class AddressAction extends BaseAction { private IAddressDAO addressDAO = null; // 添加联系人 public ActionForward addLinkMan(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { AddressForm addressForm = (AddressForm) form; Linkman linkman = new Linkman(); linkman.setUserName(addressForm.getUserName()); linkman.setUserPhone(addressForm.getUserPhone()); linkman.setUserAddress(addressForm.getUserAddress()); this.getAddressDAO().addLinkMan(linkman); return mapping.findForward("success"); } // 修改联系人 public ActionForward updateLinkMan(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { Linkman linkman = new Linkman(); linkman.setUserName(linkman.getUserName()); linkman.setUserPhone(linkman.getUserPhone()); linkman.setUserAddress(linkman.getUserAddress()); this.getAddressDAO().update(linkman); return mapping.findForward("success"); } // 删除联系人 public ActionForward delLinkMan(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { this.getAddressDAO().delete((String)this.getRequest(request, "linkmanid")); return mapping.findForward("success"); } // 获取所有联系人信息 public ActionForward getAllLinkMan(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { List list = this.getAddressDAO().getAllLinkman(); request.setAttribute("linkManList", list); return mapping.findForward("success"); } public IAddressDAO getAddressDAO() { return addressDAO; } SSH整合2.0版 作者:张森炜 public void setAddressDAO(IAddressDAO addressDAO) { this.addressDAO = addressDAO; } } 7、新建一个包名字叫做 com.address.aop 8、在com.address.aop 包下创建一个代理类,名字为: LoggingInterceptor 具体代码如下: package com.qhit.aop; import org.springframework.aop.MethodBeforeAdvice; import java.lang.reflect.Method; public class LoggingInterceptor implements MethodBeforeAdvice { public void before(Method method, Object[] objects, Object o) throws Throwable { System.out.println("logging before: " + o.getClass()); } } 9、打开applicationContext.xml 添加下面这段配置事务的代码: 10、在 applicationContext.xml 中加入下面代码进行定义 DAO 代理: PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED,readOnly SSH整合2.0版 作者:张森炜 11、在 applicationContext.xml 中加入下面代码进行配置拦截器代理: /address logger 12、打开 struts-config.xml 文件在action中加入一个属性 parameter="method" 注意此处 13、打开address.jsp页面,修改action的提交路径具体如下图所示 addLinkMan是struts ActionBeanmethod是struts-config.xml中parameter的值 中 的方法名称 至此我们所开发的 SSH 框架就修改完成了,如果在整合或提升过程中有什么问题,可以给我留言。
/
本文档为【Struts1¸2 + Spring2¸0 + Hibernate 3¸1 整合 2¸0版本】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索