0

我有一个基于 Spring 的 java 项目。在前端我有 jQuery。主要的 jQuery 组件是 Tabs,因此可以访问我的主页http://myIp/project/myController#Tab1

我需要去这个页面的方法:

  • 通过重定向:redirect:/myController#Tab1 (并且这种情况有效)

  • [当验证失败时]我需要将它们通过return "adminOperations#Tab1"(这种情况不起作用)

'adminOperations' 的定义:

<definition name="adminOperations" extends=".mainTemplate" >
    <put-attribute name="title" value="Admin page" type="string" />
    <put-attribute name="content" value="/jsp/admin.jsp" />
    <put-list-attribute name="scripts" inherit="true">
        <add-attribute value="admin.js" type="string" />
    </put-list-attribute>
</definition>

模板页面内容:

<html>
<head>
    <title><tiles:getAsString name="title" /></title>

    <tiles:useAttribute id="scripts" name="scripts" classname="java.util.List" />
    <!-- processing script & styles data -->
</head>
<body>
<div id="header">
    <div id="headerTitle"><tiles:insertAttribute name="header" /></div>
</div>
<div id="content">
    <tiles:insertAttribute name="content" />
</div>
<div id="footer">
    <tiles:insertAttribute name="footer" />
</div>
</body>
</html>

如何在此图块中正确处理“#”符号?

4

1 回答 1

1

哈希纯粹是浏览器的事情。当您向类似的 URL/foo.action#bar发送请求时,浏览器会向 发送请求/foo.action,从响应中呈现 HTML,然后在 HTML 中找到具有bar名称或 ID 的锚点,然后滚动到该锚点。如果您向/foo.action(提交表单时)发送请求,则服务器无法更改浏览器发送请求的 URL 并告诉它转到bar锚点。

唯一的方法是生成一个 HTML 页面,其中包含在页面加载并跳转到栏锚时调用的 JavaScript 函数。请参阅如何使用 jQuery 或 Javascript 将 HTML 页面滚动到给定的锚点?如何做到这一点。

于 2012-07-12T09:17:26.497 回答