轻量级框架之 Struts2CORE-06.pptx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Struts2拦截器企业级卓越人才培养天津滨海迅腾科技集团有限公司第六章

学习目标了解Struts2拦截器的意义理解Struts2拦截器的工作原理掌握Struts2拦截器的应用

理解拦截器Interceptor(以下译为拦截器)是Struts2的一个强有力的工具,有许多功能(feature)都是构建于它之上,如国际化、转换器,校验等。在action执行前后Interceptor都要被执行。框架的大部分核心功能(包括类型转化,防止双重提交等)都是借助拦截器来实现的。所有的拦截器都是插件式的,你可以为你的action精确的设置需要的拦截器

拦截器的工作原理

拦截器的意义拦截器,在AOP(Aspect-OrientedProgramming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略在WebWork中文文档中的解释为——拦截器是动态拦截action调用的对象。它提供了一种机制可以使开发者能够定义在一个action执行前阻止其执行的程序。同时也提供了一种可以提取action中可重用的部分的方式谈到拦截器,还有一个词大家应该知道——拦截器链(InterceptorChain,在Struts2中称为拦截器栈InterceptorStack)。拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用

定义拦截器packagename=myextends=struts-defaultnamespace=/manageinterceptors!--定义拦截器--interceptorname=拦截器名class=拦截器实现类/!--定义拦截器栈--interceptor-stackname=拦截器栈名interceptor-refname=拦截器一/interceptor-refname=拦截器二//interceptor-stack/interceptors....../package

初始化拦截器参数!--定义一个名为MyStack的拦截器栈,其中包含了一个拦截器栈basicStack--interceptor-stackname=MyStack/interceptor-refname=basicStack/interceptor-refname=MybasicStack/!--初始化拦截器参数--paramname=参数A参数A初始化值/param/interceptor-stackactionname=Regclass=chapter05.Regresultname=success/chapter05/success.jsp/resultresultname=input/chapter05/reg.jsp/result!--引用默认拦截器--interceptor-refname=defaultStack/interceptor-refname=Myinterceptor/!--在使用拦截器时指定拦截器参数--paramname=参数A参数A初始化值/param……/action

使用拦截器packagecom.xtgj.struts2.chapter06.action;?importcom.opensymphony.xwork2.ActionSupport;?publicclassTimerInterceptorActionextendsActionSupport{ privatestaticfinallongserialVersionUID=5309310554138672331L; @Override publicStringexecute(){ try{ //模拟耗时的操作 Thread.sleep(500); }catch(Exceptione){ e.printStackTrace(); } returnSUCCESS; }}

实例介绍对action指定方法输入校验publicvoidcheckmethod(){ if(this.mobile==null||.equals(this.mobile.trim())){ this.addFieldError(mobile,手机号不能为空); }else{ if(!Ppile(^1[358]

文档评论(0)

医药前沿 + 关注
实名认证
内容提供者

专业医药相关文档服务

1亿VIP精品文档

相关文档