系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层
Posted 未来_我来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层相关的知识,希望对你有一定的参考价值。
系统管理模块_部门管理_改进1:抽取添加与修改JSP页面中的公共代码
commons.jspf
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> <script type="text/javascript"> </script>
在页面中插入
list.jsp、saveList.jsp
系统管理模块_部门管理_改进2:在显示层抽取BaseAction
这两个Action里面都要声明service做业务操作,都要实现ModelDriven接口,以后的Action也要实现该接口来封装参数
我们这样做
BaseAction.java
public abstract class BaseAction<T> extends ActionSupport implements ModelDriven<T> { // ==================ModelDriven的支持========================== protected T model; public BaseAction() { try { // 通过反射获取model的真实类型 ParameterizedType pt = (ParameterizedType) this.getClass() .getGenericSuperclass(); Class<T> clazz = (Class<T>) pt.getActualTypeArguments()[0];// 第一个参数的真实类型 // 通过反射创建Model的实例| model = clazz.newInstance(); } catch (Exception e) { throw new RuntimeException(e); } } public T getModel() { return model; } // ==================Service实例的声明========================== // 有接口有实现类,想用它就创建,采用@Resource注入 @Resource protected DepartmentService departmentService; // 在Action里面要用到Service,用注解@Resource,另外在RoleServiceImpl类上要添加注解@Service @Resource protected RoleService roleService; }
系统管理模块_部门管理_改进3:合并Service层与Dao层(事务管理的问题在后面解决)
RoleAction调用RoleService-->RoleServiceImpl,RoleServiceImpl又调用RoleDao-->RoleDaoImpl
View + Service + Dao
View + Service(原Service+原Dao)
所有接口标上这个,表示过时,不再推荐使用
dao接口实现类也这样
不再调用dao,把
DepartmentServiceImpl.java和RoleServiceImpl.java中的调用dao的方法给注释掉
把BaseDao.java、BaseDaoImpl改名为DaoSupport.java、DaoSupportImpl.java
继承DaoSupport就不用自己写这些公共方法了
以上是关于系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层的主要内容,如果未能解决你的问题,请参考以下文章
系统管理模块_部门管理_设计(映射)本模块中的所有实体并总结设计实体的技巧_懒加载异常问题_树状结构
系统管理模块_用户管理1_实现用户有关的功能_测试功能解决事务的问题对密码进行MD5摘要
计算机毕业设计源码分享-784双鱼林JSP_SSH2_EasyUI电影院电影票订票系统