使用jsp和sitemesh进行高级模板化

时间:2011-01-21 10:22:06

标签: java jsp sitemesh

这是我想要做的事情:

我有一个带有标题,菜单栏,正文和页脚的主模板。在sitemesh的帮助下调用实际页面取代了正文,如下所示:

<div class="main">
  <decorator:body />
</div>

同样的标题等。

我的问题在于菜单栏:我想在实际页面中声明菜单栏的内容。每个页面的菜单都会发生变化,但我不想在每个页面中复制菜单栏的布局。

我的工具是JSP,Sitemesh和Spring MVC 3.

有可能吗?如果是,怎么样?

3 个答案:

答案 0 :(得分:3)

以下是我的表现:

template.jsp:

<div class="menubar" >
   <decorator:getProperty property="page.navig"></decorator:getProperty>
</div>

actualpage.jsp:

<body>
   <content tag="navig">
      my menu \o/
   </content>
...
</body>

注意:没有'页面'。它不起作用。

答案 1 :(得分:0)

我认为你应该使用page:applyDecorator tag。你会有一个专门的菜单栏装饰器,负责菜单栏的布局,菜单栏的内容将在每个页面的标签正文中。

我没有使用它,但这个标签似乎完全符合您的要求。

答案 2 :(得分:0)

在你的类似配置中,我只是使用jsp include标签

<div class="mymenu">
    <jsp:include page="menu.jsp"/>
</div>