在另一个xml Struts2下定义的重用方法

时间:2013-05-03 09:11:40

标签: struts2 url-mapping xml-configuration struts2-namespace

以下是两个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中重用相同的方法?

1 个答案:

答案 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教程。