0

我有一个标题、菜单和正文来加载 jsps。当我每次单击菜单元素时,整个图块都会重新加载。但我想向用户显示选定的菜单项。由于瓷砖重新加载,我无法获取用户单击的元素。请让我解决这个问题。谢谢

  <definition name="main-tiles" template="/WEB-INF/jsp/menu/home.jsp">
    <put-attribute name="header" value="/WEB-INF/jsp/menu/header.jsp" />
    <put-attribute name="menu" value="/WEB-INF/jsp/menu/menu.jsp" />
    <put-attribute name="body" value="" />    
  </definition>

  <definition name="home" extends="main-tiles">
    <put-attribute name="body" value="" />
  </definition>


  <!--  User Tiles -->  
  <definition name="newUser" extends="main-tiles">
    <put-attribute name="body" value="/WEB-INF/jsp/userandorg/user/newUser.jsp" />
  </definition>
4

1 回答 1

2

瓷砖并没有真正相互“交流”。

当瓦片组成的页面在您的浏览器中完全呈现时,查看 html(查看源代码),您应该很难看到任何显示的瓦片框架。这意味着当你的用户点击一个菜单时,它是一个返回到你的服务器的往返通信,它通过你的 servlet 代码运行,然后使用瓦片框架来组成生成的 html。

frameset您描述为所需行为的行为更像是iframe浏览器窗格的不同部分实际上是不同的请求/响应的行为。您可以使用可以调用 servlet 的框架实现相同的效果,AJAX然后动态更新 html 的特定块(通常定义为divspan元素),而无需刷新整个页面。

但是,如果您只想使用您的 tile 组合突出显示单击的菜单,请让您的 servlet 识别单击了哪个菜单,然后JSTL在 menu.jsp 页面上使用一些来识别菜单项链接并为菜单链接提供一些CSS样式。它仍然是往返(非AJAX)通信,但它应该会给您所描述的效果。

于 2013-01-10T07:32:40.607 回答