Sitemesh學習[0]

來源:互聯網
上載者:User

使用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的定義:
<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></filter-mapping><taglib> <taglib-uri>sitemesh-decorator</taglib-uri> <taglib-location>/WEB-INF/sitemesh-decorator.tld</taglib-location></taglib><taglib> <taglib-uri>sitemesh-page</taglib-uri> <taglib-location>/WEB-INF/sitemesh-page.tld</taglib-location></taglib>
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 defaultdir="/_decorators"> <decorator name="main" page="main.jsp"> <pattern>*</pattern> </decorator></decorators>


建立裝飾器頁面 /_decorators/main.jsp
<%@ page contentType="text/html; charset=GBK"%><%@ taglib uri="sitemesh-decorator" prefix="decorator" %><html> <head> <title><decorator:title default="裝飾器頁面..." /></title> <decorator:head /> </head> <body> sitemesh的例子<hr> <decorator:body /> <hr>chen56@msn.com </body></html>


建立一個的被裝飾頁面 /index.jsp(內容頁面)
<%@ page contentType="text/html; charset=GBK"%><html> <head> <title>Agent Test</title> </head> <body> <p>本頁只有一句,就是本句.</p> </body></html>

最後訪問index.jsp,將產生如下頁面:



而且,所有的頁面也會如同index.jsp一樣,被sitemesh的filter使用裝飾模式修改成如上圖般模樣,卻不用再使用include標籤。

 

 


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。