Java EE轻量级框架应用开发第3章 Struts2的高级特性.pptxVIP

  • 2
  • 0
  • 约2.26千字
  • 约 55页
  • 2023-10-06 发布于江苏
  • 举报

Java EE轻量级框架应用开发第3章 Struts2的高级特性.pptx

第三章 Struts2的高级特性;本章要点;拦截器简介;每个Action请求都包装在一系列的拦截器内部 拦截器可以在Action执行之前做准备操作,也可以在Action执行之后做回收操作;拦截器意义;·如果把图中的相同代码段定义成一个方法,然后在3个代码段中调用该方法,如下图所示。这样,如果要修改相同代码段的代码,则只需要修改一个地方即可;·把拦截器看做是对调用方法的改进。称某个实例是一个拦截器时,是从其行为上来说的,如果从代码的角度来看,拦截器就是一个类,类中包含方法,只是这个方法比较特殊,它会在目标方法被调用之前“自动”执行;拦截器角色;·拦截器与Action之间的关系;·拦截器简介 ·拦截器配置 ·自定义拦截器 ·Struts2的国际化 ·Struts2输入校验 ·应用中的异常处理;拦截器配置;·定义一个拦截器,只需要使用interceptor元素指定拦截类与拦截器名;使用拦截器栈;· 定义拦截器栈可以使用interceptor-stack元素,由于拦截器栈;为拦截器栈指定参数;· 当需要为拦截器栈中的拦截器指定参数时,不但可以针对每一个拦截器指定参数,也可以针对一个拦截器栈统一定义所有的参数;使用拦截器;·定义拦截器:拦截器1与拦截器2。在Action中使用拦截器,配置语法与在拦截器栈中引用拦截器是一样的。但是在第2个Action配置中使用 interceptor-ref name=“defaultStack”/ ,即系统默认拦截器栈:defaultStack;·在struts-default.xml文件中,拦截器栈的配置代码如下;默认拦截器;在struts.xml文件中配置一个包时,可以为其指定默认拦截器,一旦为某个包指定了默认拦截器,如果该包 中的某些Action没有显式指定其他拦截器,则默认拦 截器会起作用 与在Action中使用普通拦截器一样,也可以在配置默认拦截器时为该拦截器指定参数。所以,在 default- interceptor-ref 元素中同样支持param子元素;为配置默认拦截器指定参数,与使用拦截器指定的参数一样,将覆盖定义拦截器时指定的参数 配置默认拦截器也是使用拦截器的一种方式,可以避免在单独的Action中配置拦截器。通过在包的package元素下配置默认拦截器,就为此包下的所有Action同时配置了相同的拦截器 当继承了Struts-default包时,也就是继承了默认拦截器栈defaultStack,这就意味着,如果在子包中 没有为Action指定拦截器,则defaultStack拦截器 栈将执行默认拦截器Action;·与拦截器相关的配置元素;·拦截器简介 ·拦截器配置 ·自定义拦截器 ·Struts2的国际化 ·Struts2输入校验 ·应用中的异常处理;自定义拦截器;· Struts2提供了一个抽象拦截器(AbstractInterceptor)类,这个类对 init()和destory()方法进行空实现,因为并不是每次实现拦截器 时都要申请资源。下述代码是实现判断用户是否登录的拦截器;使用自定义拦截器;· 如果用户还没有登录,系统就会转向login.jsp登录页面, 使用taglib指令定义uri属性,该属性值表示引入Struts2框架 ,并设置前缀标签为s。使用s:property标签定义value属性及属性值,是为输出相应的popedom提示信息;· 应用程序的web.xml文件中对Struts2框架进行配置,否则运行程序时,会出现404错误,找不到该应用程序。 web.xml文件的内容如下列所示;· 像这种检查是否登录的拦截器,通常不会仅仅作用在一个 Action上,而是作用在所有需要用户登录后才可以访问的 Action上。因此,可以把这个拦截器定义为一个默认拦截器;·拦截器简介 ·拦截器配置 ·自定义拦截器 ·Struts2的国际化 ·Struts2输入校验 ·应用中的异常处理;Struts2的国际化;Struts2实现国际化的机制;运行流程中需要实现的文件;·配置文件;·输出国际化消息;加载国际化资源文件的方式;·加载临时指定范围资源文件;实现自由选择语言环境;·拦截器简介 ·拦截器配置 ·自定义拦截器 ·Struts2的国际化 ·Struts2输入校验 ·应用中的异常处理;Struts2输入校验;Struts2输入校验的必要性;Struts2 手动完成输入校验;在validate()方法中发现有不合法输入时,会调用 其父类的addFieldError()方法,记录一个fieldError错误 当流程进入到execute()方法之前,系统会检查有 没有fieldError,如果有,则不再执行execute()方法 ,而是返回一个input逻辑视图 如果在validat

文档评论(0)

1亿VIP精品文档

相关文档