I have defined an interceptor as follows:
<package name="default" extends="struts-default" >
<interceptors>
<interceptor-stack name="myStack">
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"/>
</package>
And then use the myStack in another namespace:
<package name="posts" namespace="/posts" extends="struts-default,json-default">
<action name="question/ask" class="someclass.QuestionAction">
<interceptor-ref name="myStack"></interceptor-ref>
<result name="success">/WEB-INF/jsp/post_question.jsp</result>
<result name="input">/WEB-INF/jsp/post_question.jsp</result>
</action>
</package>
This did not work because in the package posts, it could not find the interceptor stack named myStack. How can I solve this problem?
Having package "posts" extending "default" would solve the issue.
There is two ways is there to include the interceptors in struts.xml
First:
1)If you write any interceptors in other xml file & you want to use that interceptors in struts.xml file means, you should include that file in struts.xml
Eg: Consider other.xml file is file.xml
& you want to include into the struts.xml so,
in struts.xml you have to write
<struts>
<include file="file.xml"></include>
<package name="posts" namespace="/posts" extends="struts-default,json-default">
<action name="question/ask" class="someclass.QuestionAction">
<interceptor-ref name="myStack"></interceptor-ref>
<result name="success">/WEB-INF/jsp/post_question.jsp</result>
<result name="input">/WEB-INF/jsp/post_question.jsp</result>
</action>
</package>
</struts>
Second Way:
You Should Include the interceptors within struts.xml and refer the name in your action class then it will work correctly like this.
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="timer" class=".."/>
<interceptor name="logger" class=".."/>
<interceptor-stack name="myStack">
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>
</interceptor-stack>
</interceptors>
<action name="login"
class="tutuorial.Login">
<interceptor-ref name="myStack"/>
<result name="input">login.jsp</result>
<result name="success"
type="redirect-action">/secure/home</result>
</action>
</package>
Also i am giving two links, refer this links one of the eg i referred from these links only. Full Interceptors Concept . Basic Interceptors
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With