拦截器与拦截器stack的配置放在struts.xml中,在ACTION中将拦截器配置在result之后。
定义拦截器: <interceptor > / <interceptors>
使用拦截器:<interceptor-ref>
要实现自己的拦截器,在struts2中要实现 com.opensymphony.xwork2.interceptor.Interceptor接口 其中有三个方法
void init();
void destory();
String intercept(ContextInvocation invocation )throws Exception
invocation.invoke();
它的作用是调用后面的拦截器,也就是把控制权交给配置在本拦截器之后的拦截器
如果要实现方法过滤,则要继承MethodFilterInterceptor , 且重写doIntercept(ContextInvocation invocation)
模板和主题
模板是UI标签的外在表现形式,一些模板组成一个主题,可以这样理解:主题可以看成UI界面的表现风格和所具有的功能,好比房屋装修中的风格一样。
Struts2使用FreeMaker来定义所有的主题模板 ,内建军的有四种主题:simple xhtml css_html ajax
通过下面两个方法来对方法进行过滤:
public void setExcludeMethods(String excludemethod);
public void setIncludeMethods(String includemethod);
只须要在拦截器使用进 使用参数 进行配置便可
拦截结果的监听器
实现处理result之前的一些动作,要实现PreResultListener接口
书上第7章后面介绍了一个用拦截器来进行权限检查
struts2标签
不依赖于任何表现层技术,可以在任何表现层使用
所有标签定义在 S 标签库下,命名空间 URI=struts-tags
分类:
1 UI标签 : 表单和非表单
2 非UI标签 : 流程控制和数据访问
控制标签: if elseIf/elseif else generator sort append merge subset iterator
数据访问: action data bean debug i18n include push param
text url set property
3 Ajax标签
struts2提供的ajax标签有:
div a submit autocompleter tabbedPanel
使用标签库 Servlet2.4 不需要在Web.xml中配置标签库了,直接在页面导入便可
<%@taglib prefix="s" uri="struts-tags" %>