练习中的问题:

1,<s:url action="employee_input" />
这个标签用来让struts自动生成请求的路径,struts生成的路径是一个全路径,包含了context/package/action_method.action
  1),context:就是我们在tomcat里面配置的path
  2),package:struts中的包路径;
  3),action_method:写在s:url标签中的action;
  4),.action:就是在struts中配置的后缀名;

2,<s:a action="employee_input"><s:param name="employee.id" value="#u.id"/>编辑</s:a>
这个标签用来让struts自动生成<a>标签;
  1),生成的a标签的href也是全路径;
  2),在a标签中可以加上<s:param>,
  <s:param name="" value=""/>
    1),name属性代表添加到url中的参数的名字;
    2),value属性代表添加到url中参数的值;

3,修改掉值的问题:
现象:在修改的时候,如果修改页面中有一些属性不需要修改,在修改之后,这些属性的值就没了;
原因:在编辑的时候,数据包装到这个Employee中的,由于表单数据缺失,employee中会少一些属性;

在update方法中,直接修改这个实例,hibernate中,会根据对象生成完整的UPDATE语句,所以属性被null覆盖了

解决方法:在包装参数之前,先把employee查询出来,在查询出来的对象上面再包装值;

prepare拦截器:
1,如果我们的Action实现了Preparable接口,prepare拦截器就会在我这个action所有的方法执行之前调用;
2,可以只拦截指定的方法;
  1),比如 要拦截的方法名字叫做save;
  2),在Action中创建一个public void prepareSave()方法,这个方法就可以在save方法执行之前执行;
3,默认情况下,在defalut-stack中,prepare拦截器是先于params拦截器执行的,所以在prepare拦截器中不能直接得到参数;
4,把默认拦截器栈修改为paramsPrepareParamsStack;

4,opensessioninview:
问题的出现:当我的employee和dept关联,在列表里面就显示不出来dept相关信息(no session的错误)
解决:提前开启session,延迟关闭session(把sesion的开启和关闭放到filter中);我们就把这种模式称为open session in view;这种模式专门用来处理延迟加载的问题;

注意,使用了Opensessioninview的模式,我们必须保证,这个opensessioninview的filter使用的是spring提供的;
spring处理session是一整套方案:
1,在filter中开启session,放到current thread中;
2,在aop的事务中,得到当前的session,开启事务;
3,在dao中(sessionFactory),得到当前的session,处理DML+QUERY;
4,在aop的事务结束时,提交事务(并不会关闭session);
5,请求返回的时候,在filter中关闭session;

5,在修改employee的时候,修改了department,报错;
问题原因:因为使用了opensessioninviewfilter,所以在prepareSave中查询到的employee和employee关联的department都是持久化对象,在提交数据的时候,我们修改了department的OID值,在hibernate中,是不允许修改持久化对象的OID的;所以hibernate报错;
解决问题:在prepareSave方法中,设置得到的employee对象关联的部门对象为空;

权限系统设计-day02的更多相关文章

  1. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(四)授权代码维护

    一.前言 权限系统设计中,授权代码是用来控制数据访问权限的.授权代码说白了只是一树型结构的数据,没有什么其它的业务意义.那么这个页面的功能也就非常简单授权代码维护:新增.修改.删除授权代码数据. 二. ...

  2. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(三)图形化机构树

    一.前言 组织机构是国内管理系统中很重要的一个概念,以前我们基本都是采用数据列表的形式展现,最多只是采用树形列表展现.虽然够用,但是如果能做成图形化当然是最好不过了.这里我不用任何图形控件,就用最原始 ...

  3. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(二)菜单导航

    一.前言 上篇博客中已经总体的说了一下权限系统的思路和表结构设计,那接下来我们就要进入正文了,先从菜单导航这个功能开始. 二.实现 这个页面基本不用什么需求分析了,大家都很明白,不过在这个页面要多维护 ...

  4. 权限系统设计实现MVC4 + WebAPI + EasyUI + Knouckout

    权限系统设计实现MVC4 + WebAPI + EasyUI + Knouckout (一) 一.前言 之前的博客一直都还没写到框架的实现及权限系统,今天开始写我的权限系统,我以前做过的项目基本上都有 ...

  5. 基于Spring Cloud、JWT 的微服务权限系统设计

    基于Spring Cloud.JWT 的微服务权限系统设计 https://gitee.com/log4j/pig https://github.com/kioyong/spring-cloud-de ...

  6. 基于RBAC模型的权限系统设计(Github开源项目)

    RBAC(基于角色的访问控制):英文名称Rose base Access Controller.本博客介绍这种模型的权限系统设计.取消了用户和权限的直接关联,改为通过用户关联角色.角色关联权限的方法来 ...

  7. SpringSecurity原理剖析与权限系统设计

    Spring Secutity和Apache Shiro是Java领域的两大主流开源安全框架,也是权限系统设计的主要技术选型.本文主要介绍Spring Secutity的实现原理,并基于Spring ...

  8. 权限系统设计(0):权限系统设计基本概念改需-MAC/RBAC引子

    此篇主要对权限系统设计所涉的一些专业术语重点梳理.从我们windows的文件系统 自主访问控制 到基于角色访问控制. 权限设计基本术语 对后面会用到的词汇做一个简要说明 什么是权限(许可) 权限(Pr ...

  9. 若依管理系统RuoYi-Vue(二):权限系统设计详解

    若依Vue系统中的权限管理部分的功能都集中在了系统管理菜单模块中,如下图所示.其中权限部分主要涉及到了用户管理.角色管理.菜单管理.部门管理这四个部分. 一.若依Vue系统中的权限分类 根据观察,若依 ...

随机推荐

  1. Matlab imshow, image, imagesc 三者详细分析

    1.显示RGB图像 相同点:这三个函数都是把m*n*3的矩阵中的数值当做RGB值来显示的. 区别:imshow将图像以原始尺寸显示,image和imagesc则会对图像进行适当的缩放(显示出来的尺寸大 ...

  2. Python爬虫基础之Cookie

    一.Cookie会话 简单地说,cookie就是存储在用户浏览器中的一小段文本文件.Cookies是纯文本形式,它们不包含任何可执行代码.一个Web页面或服务器告之浏览器来将这些信息存储并且基于一系列 ...

  3. [HTTP]POST报文中Content-Type对正文解析的影响

    概述 在POST请求中,理论上请求端程序可以发送任意格式报文正文,但是最好在报文头Content-Type字段标明正文的格式,方便接收端根据Content-Type正确处理正文. 传统HTML-for ...

  4. Android Wear 2.0 AlarmManager 后台定时任务

    以前在Android 4.0时,alarmManager 没什么问题.后来android为了优化系统耗电情况,引入了doze模式,参见此页 https://developer.android.com/ ...

  5. scrapy发送邮件

    scrapy发送邮件 应用场景:在爬虫关闭或者爬虫空闲时可以通过发送邮件的提醒. 通过twisted的非阻塞IO实现,可以直接写在spider中,也可以写在中间件或者扩展中,看你具体的需求. 在网上找 ...

  6. 学习笔记_J2EE_SpringMVC_03_注解配置_@RequestMapping用法

    @RequestMappingde的用法 摘要: 主要介绍注解@RequestMapping的用法 一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMappi ...

  7. jQuery配合html2canvas 使用时 报错 Uncaught (in promise) Provided element is not within a Document

    报错代码: 这个函数运行时 function download(){ var element = $("#demo"); //jquery 获取元素 //这里将会报错 html2c ...

  8. Jenkins通过git tags进行回滚代码

    配置Jenkins获取git tag代码的方式其实方法很多,目前我使用比较多的主要是通过Git Parameter 来配置动态的获取最新tags代码,主要我们首先需要安装一下Git Parameter ...

  9. Django发HTML邮件

    1.settings配置 EMAIL_HOST = 'XXXX' DEFAULT_FROM_EMAIL = '张宁 <zhang.ning@XXX.com>' RECEIVER =['zh ...

  10. 编辑请求内容 Charles

    1 选中request, 右键选择 Breakpoints 2 再次运行edit request, excute, edit response. excute