春天瓷砖和#

时间:2012-07-12 09:03:23

标签: java jquery spring tabs tiles

我有一个基于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>

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

1 个答案:

答案 0 :(得分:1)

哈希纯粹是一个浏览器。当您向/foo.action#bar之类的网址发送请求时,浏览器会向/foo.action发送请求,从响应中呈现HTML,然后在其中找到包含bar名称或ID的锚点HTML,并滚动到此锚点。如果您向/foo.action发送请求(提交表单时),服务器无法更改浏览器发送请求的URL并告知它转到bar锚点。

唯一的方法是生成一个HTML页面,其中包含在加载页面并跳转到条形锚点时调用的JavaScript函数。有关如何执行此操作,请参阅How to scroll HTML page to given anchor using jQuery or Javascript?