sitemesh 在appfuse中的應用

appfuse的頁面是通過sitemesh模板做的。在web.xml裏的相關配置:
< filter >
< filter - name > sitemesh </ filter - name >
< filter - class > com.opensymphony.module.sitemesh.filter.PageFilter </ filter - class >
</ filter >
< filter - mapping >
< filter - name > sitemesh </ filter - name >
< url - pattern > /**/ /* </url-pattern>
<!--dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher-->
</filter-mapping>

然後它自己有一個配置文件。sitemesh.xml內容如下:
< sitemesh >
< property name = " decorators-file " value = " /WEB-INF/decorators.xml " />
< excludes file = " ${decorators-file} " />

< page - parsers >
< parser default = " true " class = " com.opensymphony.module.sitemesh.parser.HTMLPageParser " />
< parser content - type = " text/html " class = " com.opensymphony.module.sitemesh.parser.HTMLPageParser " />
< parser content - type = " text/html;charset=ISO-8859-1 " class = " com.opensymphony.module.sitemesh.parser.HTMLPageParser " />
</ page - parsers >

< decorator - mappers >
< mapper class = " com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper " >
< param name = " config " value = " ${decorators-file} " />
</ mapper >
</ decorator - mappers >
</ sitemesh >

還有一個配置文件,decorators.xml,內容如下:
< decorators defaultdir = " /decorators " >
< excludes >
< pattern >/ demos /**/ /* </pattern>
<pattern>/resources/*</pattern>
</excludes>
<decorator name="default" page="default.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>

表示不裝飾 /demos 和 /resources下的頁面。裝飾器的模板爲default.jsp。而且此模板網頁在文件夾/decorators下。 然後打開 default.jsp.我們會看到有以下幾個標籤:

1 : <decorator:title/> :
導入要裝飾的原始頁面的title內容 然後是一些導入css和javascript的代碼。

2 : <decorator:head />
導入原始頁面(被包裝頁面)的head標籤中的內容。

3 : <decorator:getProperty property="body.id" writeEntireProperty="true"/>
在標籤處插入原始頁面(被包裝頁面)的原有的標籤的屬性中的內容


本文摘自http://www.blogjava.net/liuwentao253/archive/2007/02/01/97325.html,此位仁兄的文章不錯
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章