Struts2のActionに適用するInterceptorを独自に作成してstruts.xmlに定義してみた。
<interceptors> <interceptor name="validTransitionChecker" class="ValidTransitionCheckInterceptor"/> <interceptor-stack name="customStack"> <interceptor-ref name="validTransitionChecker"/> <interceptor-ref name="defaultStack"/> </interceptor-stack>
な感じで。defaultStackは、Struts2でデフォルトで定義されているInterceptor郡のスタック。
ところが、ValidTransitionCheckInterceptorではある条件によって例外を発生させているんだけど、例外が発生しても
Interceptorで投げた例外は
<interceptors> <interceptor name="validTransitionChecker" class="ValidTransitionCheckInterceptor"/> <interceptor-stack name="customStack"> <interceptor-ref name="defaultStack"/> <interceptor-ref name="validTransitionChecker"/> </interceptor-stack>
で解決。基本的にインターセプターはinterceptor-stackに定義した順に実行される。
うっかり…。