码迷,mamicode.com
首页 > Web开发 > 详细

系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层

时间:2017-11-11 22:10:55      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:image   代码   dep   页面   rtm   har   imp   prefix   解决   

系统管理模块_部门管理_改进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层

标签:image   代码   dep   页面   rtm   har   imp   prefix   解决   

原文地址:http://www.cnblogs.com/justdoitba/p/7772331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!