struts 2 Interceptorインタフェースによるカスタムブロッキング
2937 ワード
index.jsp
struts.xml(すべてのメソッドをブロック)
struts.xml(指定メソッドをブロック)
UserAction.java
MyInterceptor.java
また、次のような一般的な方法があります.
1:invocation.getProxy().getAction();//アクションクラスのオブジェクトを取得
2:invocation.getProxy().getAtionName();//取得struts.xmlプロファイルのactionラベルのname属性値
3:invocation.getProxy().getMethod();//アクションクラスの実行方法に対応
4:invocation.getProxy().getNamespace();//struts.xmlプロファイルのpackageラベルのnamespaceプロパティの値
*/
<a href="${pageContext.request.contextPath }/aop/user_save"> </a>
struts.xml(すべてのメソッドをブロック)
<package name="" namespace="/aop" extends="struts-default">
<!-- -->
<interceptors>
<!-- -->
<interceptor name="myInterceptor" class="cn.yang.aop.MyInterceptor"></interceptor>
<!-- -->
<interceptor-stack name="myStack">
<interceptor-ref name="myInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- -->
<default-interceptor-ref name="myStack"></default-interceptor-ref>
<action name="user_*" class="cn.yang.action.UserAction" method="{1}">
<result name="success">/jsps/success.jsp</result>
</action>
</package>
struts.xml(指定メソッドをブロック)
<package name="" namespace="/aop" extends="struts-default">
<interceptors>
<interceptor name="myInterceptor" class="cn.yang.aop.MyInterceptor"></interceptor>
</interceptors>
<action name="user_*" class="cn.yang.action.UserAction" method="{1}">
<result name="success">/jsps/success.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="myInterceptor"></interceptor-ref>
</action>
<action name="test" class="cn.yang.action.TestAction" method="test">
<result name="success">/jsps/success.jsp</result>
</action>
</package>
UserAction.java
public String save(){
System.out.println("UserAction-->save()");
return SUCCESS;
}
MyInterceptor.java
また、次のような一般的な方法があります.
1:invocation.getProxy().getAction();//アクションクラスのオブジェクトを取得
2:invocation.getProxy().getAtionName();//取得struts.xmlプロファイルのactionラベルのname属性値
3:invocation.getProxy().getMethod();//アクションクラスの実行方法に対応
4:invocation.getProxy().getNamespace();//struts.xmlプロファイルのpackageラベルのnamespaceプロパティの値
*/
<!-- Interceptor -->
public class MyInterceptor implements Interceptor {
@Override
public void destroy() {
System.out.println("destroy()...");
}
@Override
public void init() {
System.out.println("init()...");
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("intercept()...");
<!-- doFilter-->
invocation.invoke();
return null;
}
}