Struts2 - 返回特定部分和/或.jsp页面的一部分

时间:2013-12-07 23:18:20

标签: java jsp url struts2 actionresult

我正在使用Struts2框架并试图让它返回到页面上的特定部分id。目前,当我尝试执行以下操作时会抛出错误:

<struts>
<constant name="struts.devMode" value="false"/>

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

    <action name="default">
        <!--suppress Struts2ModelInspection -->
        <result type="redirectAction">index.jsp</result>
    </action>

    <action name="sendEmail" class="com.brickhouse.action.EmailAction">
        <result name="success">index.jsp#contact</result>
    </action>

    <action name="sendNewsletter" class="com.brickhouse.action.NewsletterAction">
        <result name="success">index.jsp</result>
    </action>

</package>

当然,如果我删除主题标签并让"sendMail"操作返回到常规index.jsp而不是index.jsp#contact,那么它可以正常工作。

我要返回的id部分是contact

<section id="contact">
    <div class="container">
       . . . .
    </div>
</section>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您不应使用#符号作为调度程序结果,因为调度程序不会更改请求转发到的URL。找不到具有此名称的资源。相反,您可以使用它来构建URL或重新定向重定向结果类型以跳到该部分(从不使用最后一个)。例如

<s:url var="skipToContact" value="#contact"/>
<s:a href="%{#skipToContact}">Skip to Contact</s:a>
...
<section id="contact"></section>
单击它时,

将跳到该部分。确保该部分不在文档的末尾,即从部分到文档末尾的高度大于浏览器窗口高度。