struts2默认拦截器与自定义拦截器在使用时的注意事项

来源:互联网 发布:hilbert矩阵 matlab 编辑:程序博客网 时间:2024/05/22 12:32

很多时候,我们会自定义一个拦截器来替换struts2默认的拦截器,这时,我们需要注意一些事项。

百度一下,我们找到了默认拦截器的说明,如下:

拦截器/Interceptor名字说明Aliasalias在不同的请求之间将请求的参数在不同的名称之间转换,请求的内容不变Chainingchain让前一个Action的属性可以变被后一个Action访问,现在和chain类型的result()结合使用Checkboxcheckbox添加了checkbox自动处理代码,将没有选中的checkbox的内容设定为false,而HTML默认情况下不提交没有选中的checkboxCookiescookies使用配置的name ,value来指定cookiesConversion ErrorconversionError将错误从ActionContext中添加到Action属性字段中Create SessioncreateSession自动的创建HttpSession,用来为需要使用HttpSession的拦截器服务Debuggingdebugging提供不同的调试用的页面来展现内部的数据情况Execute and WaitexecAndWait在后台执行Action,同时将用户带到一个中间的等待页面Exceptionexception将异常定位到一个画面File UploadfileUpload提供文件上传功能I18ni18n记录用户选择的localeLoggerlogger输出Action的名字Message Storestore存储或者访问实现ValidationAware接口的Action类出现的消息、错误、字段错误等Model Drivenmodel-driven如果一个类实现了ModelDriven,将getModel得到的结果放到Value Stack中Scoped Model Drivenscoped-model-driven如果一个Action实现了Scoped Model Driven,这这个拦截器会从相应的scope中取出model调用Action中的setModel方法,将其放入Action内部Parametersparams将请求的参数设置到Action中Prepareprepare如果Action实现了Preparable,则该拦截器会调用Action类的prepare方法Scopescope将Action状态存入session和application中的简单方法Servlet Configservletconfig提供访问HttpServletRequest和HttpServletResponse的方法,以Map的方式访问Static ParametersstaticParams从struts.xml文件中将中的内容设置到对应的Action中Rolesroles确定用户是否具有JAAS指定的Role,否则不予执行Timertimer输出Action执行的时间Tokentoken通过Token来避免双击Token SessiontokenSession和Token一样,不过双击的时候将数据放到了session中Validationvalidation使用action-validation.xml文件中定义的内容校验提交的数据Workflowworkflow调用Action的validate方法,一旦有错误返回,重新定位到INPUT页面Parameter FilterN/A从参数列表中删除不必要的参数Profilingprofiling通过参数激活profile


其中,有一个名为params的拦截器,它的作用是“将请求的参数设置到Action中”,也就是说,如果你从页面中传值到Action,即拦截请求参数,并赋值给action里的属性,而且你自定义的拦截器要用到这些值栈中的值,则你的拦截器栈中,需要在自定义拦截器前面加上默认的拦截器,如下:

1<interceptor-ref name="params"/>
2<interceptor-ref name="myInterceptor"/>
0 0
原创粉丝点击