【问题标题】:Struts2 - returning to a specific section and/or part of a .jsp pageStruts2 - 返回到特定部分和/或 .jsp 页面的一部分
【发布时间】:2013-12-07 23:18:19
【问题描述】:

我正在使用 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,它就可以正常工作。

我要返回的部分idcontact

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

有什么想法吗?

【问题讨论】:

  • 通常你想知道实际的错误。在任何情况下,您都转发到 jsp 页面,而不是页面上的锚点。我想你可以重定向到一个带有锚点的 URL。
  • 指定。自动更正。

标签: java jsp url struts2 actionresult


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 2017-02-28
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    相关资源
    最近更新 更多