//MyInterceptor.java
public class MyInterceptor extends AbstractInterceptor {
public String intercept(ActionInvocation invocation) throws Exception {
long start = System.currentTimeMillis(); //Action前做点事
String r = invocation.invoke(); //调用Action中的某个方法
long end = System.currentTimeMillis(); //Action 执行后再做点事
System.out.println("action time = " + (end - start)); return r;
}
}
//struts.xml
<struts>
<constant name="struts.devMode" value="true"></constant> <package name="test" namespace="/" extends="struts-default"> <interceptors> <interceptor name="my" class="MyInterceptor"/> //向struts2注册自己的Interceptor </interceptors>
<action name="test" class="TestAction"> <result>/test.jsp</result>
<!-- 注意两个interceptor-ref的顺序, 顺序不同, 执行效果也不同: 先配置的先执行/后配置的先退出(先进后出) --> <interceptor-ref name="my"></interceptor-ref> //应用到这个Action上 <interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
//struts.xml
<struts>
<constant name="struts.devMode" value="true"></constant> <package name="test" namespace="/" extends="struts-default"> <action name="input" class="InputAction"> <result>/input.jsp</result> </action>
<action name="user" class="UserAction"> <result>/addOK.jsp</result> <interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref> <result name="invalid.token">/error.jsp</result>
</action>
</package>
</struts>
//表单的写法
<form action="user" method="post"> name:<input name="name"> age:<input name="age"> <input type="submit" value="add">
<s:token></s:token> </form>