cla教材资料ss17struts2(高级).pptVIP

  • 1
  • 0
  • 约1.72万字
  • 约 28页
  • 2019-08-04 发布于湖北
  • 举报
* 全局视图属于自己的包内, 此包extends=“struts-default” 其他包下的action也希望能够使用到此全局视图。可继承上面的包名称 * struts2中如文件上传,数据验证,封装请求参数到action等功能都是由系统默认的defaultStack中的拦截器实现的,所以我们定义的拦截器需要引用系统默认的defaultStack,这样应用才可以使用struts2框架提供的众多功能。 如果希望包下的所有action都使用自定义的拦截器,可以通过default-interceptor-ref name=“permissionStack”/把拦截器定义为默认拦截器。注意:每个包只能指定一个默认拦截器。另外,一旦我们为该包中的某个action显式指定了某个拦截器,则默认拦截器不会起作用。 * StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由url-pattern/*/url-pattern指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径不带后缀或者后缀以.action结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理。当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action。与Struts1不同,Struts2对用户的每一次请求都会创建一个Action,所以Struts2中的Action是线程安全的。 * 通过重写validate() 方法实现, validate()方法会校验action中所有与execute方法签名相同的方法。当某个数据校验失败时,我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action可以继承ActionSupport ),如果系统的fieldErrors包含失败信息,struts2会将请求转发到名为input的result。在input视图中可以通过s:fielderror/显示失败信息。 * 通过validateXxx()方法实现, validateXxx()只会校验action中方法名为Xxx的方法。其中Xxx的第一个字母要大写。当某个数据校验失败时,我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action可以继承ActionSupport ),如果系统的fieldErrors包含失败信息,struts2会将请求转发到名为input的result。在input视图中可以通过s:fielderror/显示失败信息。 * 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml,其中ActionClassName为action的简单类名,-validation为固定写法。如果Action类为com.unis.UserAction,那么该文件的取名应为:UserAction-validation.xml * 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml,其中ActionClassName为action的简单类名,-validation为固定写法。如果Action类为com.unis.UserAction,那么该文件的取名应为:UserAction-validation.xml 讲解人:王英伟 讲解时间:60min * * Struts2介绍 * Struts2的处理流程 StrutsPrepareAndExecuteFilter Interceptor Action Result Jsp/html 响应 用户请求 Struts2内置的一些拦截器或用户自定义拦截器 * 自定义拦截器 要自定义拦截器需要实现erceptor.Interceptor接口: public class PermissionInterceptor implements Interceptor { public String intercept(ActionInvocation invocation) throws Exception { Object user = ActionContext.getConte

文档评论(0)

1亿VIP精品文档

相关文档