我使用spring 3和Tiles 2。我已经分开的身体,标题和菜单。我想要实现的是,当用户点击菜单中的选项,只有身体被重新加载;保持菜单和页眉静态。有什么提示吗?我已经尝试过Spring.addDecoration
<script type="text/javascript">
Spring.addDecoration(new Spring.AjaxEventDecoration({
elementId: "countryMenu",
formId: "countryMenuForm",
event: "onclick",
params: {fragments: "body"}
}));
</script>
但效果不佳
这是我们在FINN.no正在解决的问题也就是说,我们希望复合模式(Tiles提供的)能够同时在服务器端和客户端工作。
今天我们采用一种简单的方法,在给定定义和属性名的情况下,获取该属性的模板并再次在客户端呈现它。我们使用了mustache模板。@RequestMapping(value = "template/{definitionName}/{attributeName:.+}", method = RequestMethod.GET)
public static void fetchTemplateDefinition(
@PathVariable("definitionName") String definitionName,
@PathVariable("attributeName") String attributeName,
HttpServletRequest httpRequest,
HttpServletResponse httpResponse) throws ServletException, IOException {
ApplicationContext tilesContext = ServletUtil.getApplicationContext(httpRequest.getSession().getServletContext());
TilesContainer tilesContainer = getTilesContainer(tilesContext);
ServletRequest servletRequest = new ServletRequest(tilesContext, httpRequest, httpResponse);
String templatePath = getTemplatePath(tilesContext, definitionName, attributeName, tilesContainer, servletRequest);
InputStream templateStream = loadResourceInputStream(templatePath, tilesContext);
IOUtils.copy(templateStream, httpResponse.getOutputStream());
}
Spring.addDecoration(…)看起来很有趣!