使用sitemesh建立復合視圖 - 1.hello
(作者:chen-neu ,提供給 huihoo.com 發布)
使用sitemesh建立復合視圖 - 1.hello <- now
使用sitemesh建立復合視圖 - 2.裝飾器
使用sitemesh建立復合視圖 - 3.其它討論
sitemesh是opensymphony團隊開發的J2EE應用框架之一,旨在提高頁面的可維護性和復用性。opensymphony的另一個廣為人知的框架為webwork是用作web層的表示框架。他們都是開源的,可以在www.sf.Net下找到。
應用於以下大項目的例子:http://opensource.thoughtworks.com/projects/sitemesh.Html
www.jboss.org www.theserverside.com www.opensymphony.com www.atlassian.com 簡介: sitemesh應用Decorator模式,用filter截取request和response,把頁面組件head,content,banner結合為一個完整的視圖。通常我們都是用include標簽在每個JSP頁面中來不斷的包含各種header, stylesheet, scripts and footer,現在,在sitemesh的幫助下,我們可以開心的刪掉他們了。如下圖,你想輕松的達到復合視圖模式,那末看完本文吧。
hello sitemesh: 在WEB-INF/web.XML中copy以下filter的定義:
copy所需jar和dtd文件至相應目錄,訪問opensymphony.sourceforge.Net的cvs以獲取sitemesh最新版本。 sitemesh.jarWEB-INF/lib sitemesh-decorator.tldWEB-INF sitemesh-page.tldWEB-INF 建立WEB-INF/decorators.XML描述各裝飾器頁面(可仿照sitemesh例子)。
建立裝飾器頁面 /_decorators/main.JSP
<%@ page contentType="text/Html; charset=GBK"%><%@ taglib uri="sitemesh-decorator" prefix="decorator" %>
建立一個的被裝飾頁面 /index.JSP(內容頁面)
<%@ page contentType="text/Html; charset=GBK"%>
本頁只有一句,就是本句.
最後訪問index.JSP,將生成如下頁面:
而且,所有的頁面也會如同index.JSP一樣,被sitemesh的filter使用裝飾模式修改成如上圖般模樣,卻不用再使用include標簽。