【问题标题】:spring tiles and #弹簧砖和#
【发布时间】:2012-07-12 09:03:22
【问题描述】:

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

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

【问题讨论】:

  • ue 问题有点不清楚..您应该发布您的控制器文件以及 admin.jsp 。通过重定向:redirect:/myController#Tab1(这种情况有效)[当验证失败时]我需要通过 return "adminOperations#Tab1" 将它们传回(这种情况不起作用){which validation?}。发布admin.js 文件也是如此..

标签: java jquery spring tabs tiles


【解决方案1】:

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

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

【讨论】:

  • 但是我需要从 java 部分传递一个参数 - 锚点......我该怎么做?
  • 生成合适的 JavaScript,就像生成合适的 HTML 一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-02
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
相关资源
最近更新 更多