我有一个标题,菜单和一个加载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>
答案 0 :(得分:2)
Tiles并没有真正相互“沟通”。
当在浏览器中完全呈现由tile组成的页面时,查看html(查看源代码),您应该很难看到任何显示的tile框架。这意味着当您的用户单击菜单时,它是一个往返服务器的往返通信,它通过您的servlet代码运行,然后使用tiles框架来组成生成的html。
您所描述的所需行为更像是frameset
或iframe
行为,其中浏览器窗格的不同部分实际上是不同的请求/响应。您可以使用AJAX
框架实现相同的效果,这些框架可以调用您的servlet,然后动态更新html的特定块(通常定义为div
或span
元素),而无需刷新整页。
但是,如果您只想使用切片组合突出显示单击的菜单,请让您的servlet识别单击了哪个菜单,然后使用menu.jsp页面上的一些JSTL
来标识菜单项链接并提供菜单链接的一些CSS
样式。它仍然是往返(非AJAX
)通信,但它应该给你你描述的效果。