struts2 Escape命名空间定义

时间:2012-08-31 14:24:51

标签: java struts2

在我的struts.xml中(包名是website)我有一个包含给孩子xml:

<include file="child.xml"/>

我的struts.xml中也有一个欢迎action

<action name="welcome">
     <result>welcome.jsp</result>
</action>

我的child.xml扩展了struts.xml:

<package name="child" namespace="/child" extends="website">

接下来我要做的是在我的child.xml中创建一个重定向到welcome操作的操作。到目前为止,我的child.xml中有以下内容,但它不起作用:

<action name="">
     <result type="redirectAction">welcome</result>
</action>

我认为它不起作用的原因是因为默认情况下它会转到网址/child/welcome,而不仅仅是/welcome。所以如果可能的话,我需要一种方法来在child.xml中的action定义中转义它。

1 个答案:

答案 0 :(得分:3)

RedirectAction结果可以有两个由Struts2定义的特定参数。其中一个是actionName,另一个是namespace。那么,如果你想在你的包内重定向到一个位于命名空间之外的动作,你必须将以下内容放在你的child.xml中:

<action name="whatever">
    <result type="redirectAction">
        <param name="actionName">welcome</param>
        <param name="namespace">/</param>
    </result>
</action>

您可以查看与结果类型redirectAction here相关的所有文档。您有一个完整的示例,说明如何重定向到页面底部的不同命名空间。