以下是两个xmls的样本。
email.xml:
<action name="mailSelect" class="com.my.EmailAction">
<result name="success">mailSelect.jsp</result>
</action>
我想在另一个xml中使用在email.xml中定义的相同方法调用。
another.xml:
<action name="mailSelect" class="com.my.EmailAction">
<result name="success">/email/mailSelect.jsp</result>
</action>
当我尝试拨打电话时,被调用的动作是http://localhost:8080/test/web/another/mailSelect
,而不是正确的http://localhost:8080/test/web/email/mailSelect
。
如何在另一个xml中重用相同的方法?
答案 0 :(得分:0)
要确保动作名称不发生冲突,您应该在不同的名称空间中配置它们。
<package name="email" namespace="/web/email" extends="struts-default">
<action name="mailSelect" class="com.my.EmailAction">
<result name="success">/email/mailSelect.jsp</result>
</action>
</package>
<package name="another" namespace="/web/another" extends="struts-default">
<action name="mailSelect" class="com.my.EmailAction">
<result name="success">mailSelect.jsp</result>
</action>
</package>
为了更好地理解命名空间,请查看Struts 2 Namespace configuration example and explanation教程。