视图模板,我一直用tiles,作为struts插件使用。今天实践了一回SiteMesh,其设计上的灵光让人赞叹不已,记得上回这么激动还是接触spring时吧。tiles好象从“美“的角度就差了一些,呵呵。www.jboss.org 就是采用它的哟。
不知道谁在项目中实践过,真想交流一下,看看他是怎样应付一些复杂情况的。
简介:SiteMesh ,出自Opensymphony,和大名鼎鼎的Webwork、OsCaceh、OsWorkflow同门, 它的思想是Decorator模式,使用servlet2.3的Flitler,截取request和response, 把页面组件head,content,banner等结合为一个完整的视图。和当下正火的Ioc暗合,即页面不需要知道怎样被装饰,交由容器负责。
以下是几个常用的标签:
<decorator:title default="default title" />:读取被装饰页面的标题,并给出了默认标题。
<decorator:head />:读取被装饰页面的<head>中的内容;
<decorator:body />:读取被装饰页面的<body>中的内容;
<page:applyDecorator page="/menu.jsp" name="panel" >
<page:param name="myEmail"> chagezw@hotmail.com </page:param>
</page:applyDecorator>
把menu.jsp文件用panel指定的装饰器装饰,并把结果插入到该位置,并设置一个页参数, 该属性值可以在包装页面中用 <decorator:getProperty property=="myEmail"> 标签访问到 .tiles的大部分功能这一个标签就可以作到了。
重要的工作就是制作装饰器页面本身(也就是包含结构和规则的页面),然后把他们描述到decorators.xml中.