• OA项目10:部门管理的三个细节问题的解决及处理懒加载问题


    首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明。谢谢。

    一 部门管理遗留三个细节问题,及其处理方法:

      1.当选择了子部门列表,希望增加返回上一级按钮,点击可以回到上一级的部门列表;

        1)在list页面添加返回上一级按钮(在新建按钮后面),如下:

        <s:a action="department_list?parentId=%{#parent.parent.id}"><img     src="${pageContext.request.contextPath}/style/blue/images/button/ReturnToPrevLevel.png" /></s:a>

        2)在DepartmentAction.java的list()方法中(parent!=null)新增以下代码,查询到parent对象:

        Department parent = departmentService.findById(parentId);

          ActionContext.getContext().put("parent", parent);

      2.在子部门列表中新建修改部门时,希望在新建页面的上一级部门中回显上级部门的信息;在保存部门时,回到新建部门的同级部门列表,以便显示刚刚新建的部门。

        在list.jsp中的新建按钮中添加parentId,内容如下,这样在新建页面就可以回显上级部门信息了:

        <s:a action="department_addUI?parentId=%{parentId}"><img src="${pageContext.request.contextPath}/style/images/createNew.png" /></s:a>

        在struts.xml文件中,修改重定向的result值,添加parentId值,在重定向功能时就可以带着parentId回到我们的上级部门显示列表了:

        <result name="toList" type="redirectAction">department_list?parentId=${parentId}</result>

      3.在删除子部门时,希望回到删除部门的同级部门显示列表。

        在list.jsp中修改删除按钮,添加parentId,如下:

        <s:a onClick="return window.confirm('这将删除所有的下级部门,您确定要删除吗?')" action="department_delete?id=%{id}&parentId=%{parentId}">删   除</s:a>

    二 懒加载异常的处理:

      之前在项目中出现了懒加载异常,当时使用了临时的解决办法就是在Department.hbm.xml中使用了lazy="false",但这并不能根除问题,因为这样的话就把懒加载的好处都去掉了,所以为了更好的解决此问题,即不让session在service层关闭,在filter或interceptor中关闭。采取以下办法:

      在web.xml中配置一个过滤器,具体内容如下(注意:要配置在struts过滤器之前):

      <!-- 配置Spring用于解决懒加载问题的过滤器,要配在struts2过滤器之前 -->

      <filter>

        <filter-name>OpenSessionInViewFilter</filter-name>

        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

      </filter>

      <filter-mapping>

        <filter-name>OpenSessionInViewFilter</filter-name>

        <url-pattern>*.action</url-pattern>

      </filter-mapping>

      这样就解决了懒加载的问题,不信启动服务器试试。

  • 相关阅读:
    java静态工厂实例
    有道云词典+浏览器开PDF文档=科研者外文阅读福利
    高并发实时性网络视频监控项目实战
    Linux环境下天气预报实现
    2019暑假内容复习
    《分布式与云计算》MOOC第三单元课后测试答案
    安装vivado 2016.1时出错
    N皇后问题的一种解法
    window10下基于anaconda安装tensorflow1.14(cpu版本)
    记一次简单的生产环境Mysql调优
  • 原文地址:https://www.cnblogs.com/clear5/p/4043858.html
Copyright © 2020-2023  润新知