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

发布于 2024-08-20 19:38:08 字数 666 浏览 3 评论 0原文

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

这是默认操作

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

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

<global-results>
    <result name="sendToRouting" type="redirectAction">
        <param name="actionName"></param>
        <param name="namespace">/</param>
    </result>
</global-results>

我尝试取出 actionName 参数,但这不起作用。如果我为 HomeAction 输入一个名称并在全局结果中按名称引用它,那么我假设问题是缺少重定向的操作名称。

有什么想法吗?

I have an action with an empty string for name defined in the root namespace, and I want to redirect to that action from another action if a certain result is found, but it doesn't seem to work.

Here's the default action

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

And I'm defining the redirect in the global-results for the package:

<global-results>
    <result name="sendToRouting" type="redirectAction">
        <param name="actionName"></param>
        <param name="namespace">/</param>
    </result>
</global-results>

I've tried taking out the actionName parameter, but that doesn't work. If I put a name in for the HomeAction and reference it by name in the global-results it works, so I'm assuming the problem is lack of action name for the redirect.

Any thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

久伴你 2024-08-27 19:38:08

我认为你想做的是使用 :

<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>

抱歉...误读了问题:

尝试更改 type="redirectAction"type="redirect",我相当确定redirectAction现在是重定向。

I think that what you want to do is use <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>

Sorry...misread the question:

Try changing type="redirectAction" to type="redirect", I'm fairly sure that redirectAction is now redirect.

别理我 2024-08-27 19:38:08

您是否因为 actionName 参数为空而收到 NullPointerException?我通过提供一个评估为空字符串的字符串来解决这个问题:

<param name="actionName">${}</param>

尽管如此,仍在寻找更“正确”的解决方案......

Were you getting a NullPointerException because the actionName parameter is blank? I hacked around this by providing a string which evaluates to an empty string:

<param name="actionName">${}</param>

Still looking for a more "correct" solution though...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文