在Struts 2中重定向到默认操作

top*_*r-j 4 redirect struts2

我有一个带有空字符串的操作,用于在根命名空间中定义的名称,如果找到某个结果,我想从另一个操作重定向到该操作,但它似乎不起作用.

这是默认操作

<action name="" class="com.example.actions.HomeAction">
    <result name="success" type="freemarker">freemarker/home.ftl</result>
</action>
Run Code Online (Sandbox Code Playgroud)

我正在定义包的全局结果中的重定向:

<global-results>
    <result name="sendToRouting" type="redirectAction">
        <param name="actionName"></param>
        <param name="namespace">/</param>
    </result>
</global-results>
Run Code Online (Sandbox Code Playgroud)

我已经尝试取出actionName参数,但这不起作用.如果我为HomeAction命名并在全局结果中按名称引用它,那么我假设问题是缺少重定向的动作名称.

有什么想法吗?

Tho*_*mas 11

我认为你想要做的是使用<default-action-ref />:

<package name="home" namespace="/" extends="struts-default">
    <default-action-ref name="home" />

    <action name="home" class="com.example.actions.HomeAction">
        <result name="success" type="freemarker">freemarker/home.ftl</result>
    </action>

</package>
Run Code Online (Sandbox Code Playgroud)

对不起......误读了这个问题:

尝试更改type="redirectAction"type="redirect",我很确定redirectAction现在是重定向.