0

我将 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>

但效果不佳

提前致谢。

4

1 回答 1

0

这是我们在 FINN.no 正在解决的一个问题。也就是说,我们希望复合模式(Tiles 提供的)在服务器端和客户端都可以工作。

今天我们采用一种简单的方法,在给定定义和属性名称的情况下,我们获取该属性的模板并在客户端再次呈现它。我们为此使用胡子模板。

@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(..) 看起来很有趣!我需要阅读更多内容……</p>

于 2013-06-23T11:49:04.163 回答