• 系统管理模块_部门管理_改进_抽取添加与修改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就不用自己写这些公共方法了

  • 相关阅读:
    菜鸟调错(四)——Spring与DWR集成,配置文件报错
    FIFO、LRU、OPT页面调度算法及样例
    JConsole的使用手册 JDK1.5(转)
    jconsole JDK1.6 使用手册 (转)
    CPU利用率与Load Average的区别?
    Load和CPU利用率是如何算出来的 (转发)
    SecureCRT 默认配置
    Java 内存区域和GC机制(转载)
    Java 线程池的原理与实现 (转)
    【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7772331.html
Copyright © 2020-2023  润新知