Struts2教程9:实现自已的****** - 编程入门网
在访问如下的URL:
http://localhost:8080/struts2/test/ddd.action?action=test 在浏览器中将会出现如下的字符串: invoke test invoke abcd 而如果访问http://localhost:8080/struts2/test/ddd.action?action=print,将会只出现如下的字符串: invoke print 大家可以看出,访问这个url时并没有调用abcd方法。如果随便指定的action值的话,则只调用abcd方法,如访问http://localhost:8080/struts2/test/ddd.action?action=aaa,就只会输出invoke abcd。 Struts2教程9:实现自已的******(4)时间:2011-07-03 BlogJava nokiaguy二、******的参数 我们在使用很多Struts2内置的******时会发现有很多******都带参数,当然。我们自己做的******也可以加上同样的参数。有两个参数比较常用,这两个参数是includeMethods和excludeMethods,其中includeMethods指定了******要调用的Action类的执行方法(默认是execute),也就是说,只有在includeMethods中指定的方法才会被Struts2调用,而excludeMethods恰恰相反,在这个参数中指定的执行方法不会被Struts2调用。如果有多个方法,中间用逗号(,)分隔。在Struts2中提供了一个抽象类来处理这两个参数。这个类如下:
如有继承于这个类的******类都会自动处理includeMethods和excludeMethods参数,如下面的拦截器类所示: package interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.*; public class MyFilterInterceptor extends MethodFilterInterceptor { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override protected String doIntercept(ActionInvocation invocation) throws Exception { System.out.println("doIntercept"); System.out.println(name); return invocation.invoke(); } } MethodFilterInterceptor的子类需要实现doIntercept方法(相当于Interceptor的intercept方法),如上面代码所示。在上面的代码中还有一个name属性,是为了读取拦截器的name属性而设置的,如下面的配置代码所示: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="demo" extends="struts-default" namespace="/test"> <interceptors> <interceptor name="method" class="interceptor.MultiMethodInterceptor" /> <interceptor name="filter" class="interceptor.MyFilterInterceptor"> <param name="includeMethods">abcd</param> <param name="name">中国</param> </interceptor> <interceptor-stack name="methodStack"> <interceptor-ref name="method" /> <interceptor-ref name="filter" /> <interceptor-ref na |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |