在Struts 2动作名称中使用破折号

时间:2015-06-09 08:14:01

标签: java jsp url struts2

我有以下行动:

<action name="#dash_creds" class="AccountDashboardActionBean">
    <result name="success" type="stream">
        <param name="contentType">application/json</param>
        <param name="inputName">jsonInputStream</param>
    </result>
</action>

我希望Struts接受我的网址中的#符号或忽略它,因为它现在不会调用我的操作。

2 个答案:

答案 0 :(得分:1)

哈希符号用于标识URL的“片段”部分;在url中第一个#之后的所有内容都被视为片段的一部分,并且不会将其发送到服务器。

这意味着永远不会达到带有#的动作名称;如果你从浏览器中调用它:

http://domain.name/namespace/#dash_creds

您的Struts应用程序将会看到:

http://domain.name/namespace/

出于同样的原因,我认为没有办法让Struts“忽略它”。您的操作名称不应包含哈希值。

另见这些链接:

答案 1 :(得分:0)

特殊字符#不允许作为操作名称的一部分。如果要使用操作名称构建URL,可以使用url标记。

<s:url var="url" action="" anchor="dash_creds"/>