Any given action mapping can create an "ad-hoc" interceptor stack
Code Block | ||
---|---|---|
| ||
<action name="login" class="tutorial.Login"> <interceptor-ref name="timer"/> <interceptor-ref name="logger"/> <interceptor-ref name="default-stackdefaultStack"/> <result name="input">login.jsp</result> <result type="redirect-actionredirectAction">/secure/home</result> </action> |
Or, we can create our own named stacks and even declare a new default interceptor stack for a package
Code Block | ||
---|---|---|
| ||
<package name="default" extends="struts-default" > <interceptors> <interceptor-stack name="myStack"> <interceptor-ref name="timer"/> <interceptor-ref name="logger"/> <interceptor-ref name="default-stackdefaultStack"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="myStack"/> <action name="login" class="tutorial.Login"> <result name="input">login.jsp</result> <result type="redirect-actionredirectAction">/secure/home</result> </action> </package> |
Packages can extend other packages. If all the other packages in your application extend "default", then they will all inherit the new default interceptor.
...