免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版
打開APP
未登錄
開通VIP,暢享免費電子書等14項超值服
開通VIP
首頁
好書
留言交流
下載APP
聯(lián)系客服
SiteMesh使用
凌氏
>《Spring》
2014.05.09
關(guān)注
什么是SiteMesh?
SiteMesh是OpenSymphony下的一個項目,是基于PageFilter,Servlet過濾器的通用組件.
SiteMesh為我們帶來什么?
我們可以想像一下,當我們的應(yīng)用程序有大量的頁面時候,為每個頁面include我們各種各樣的標簽庫,引入的js和css等樣式,這將會成為重復(fù)性的工作,而且只要其中一個標簽庫進行了更新升級,所有頁面的標簽聲明都需要重新更改,這項工作無疑是恐怖而且毫無技術(shù)含量的,SiteMesh就是為了幫助我們解決這個問題,把共有的標簽例如js,css,struts-tags等重復(fù)性的聲明抽象到一個頁面當中,從而實現(xiàn)集中處理,增加維護性和解除頁面間的耦合.
SiteMesh原理:
SiteMesh應(yīng)用了Decorator模式,用filter截取request和response,把頁面組件head,content,banner結(jié)合為一個完整的視圖。通常我們都是用include標簽在每個jsp頁面中來不斷的包含各種header, stylesheet, scripts and footer,現(xiàn)在,在SiteMesh的幫助下,我們可以不再編寫那些重復(fù)性的代碼,從而集中在一個地方進行管理.容器接收到頁面請求時,會把請求傳遞給PageFilter,PageFilter收集應(yīng)用程序的響應(yīng)細節(jié),生成自定義的響應(yīng)對象,然后連同請求一起傳遞給web應(yīng)用程序.web應(yīng)用程序把響應(yīng)資源寫入到自定義響應(yīng)對象里,再返回給PageFilter.
SiteMesh使用:
本事例使用基于Struts2來進行編寫
1.首先在我們的項目當中添加Maven的依賴
Xml代碼
<dependency>
<groupId>opensymphony</groupId>
<artifactId>sitemesh</artifactId>
<version>2.4.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-sitemesh-plugin</artifactId>
<version>2.2.3</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
2.在web.xml文件中增加如下配置
Xml代碼
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
3.在WEB-INF建立decorators.xml,該文件描述各個裝飾器頁面和如何過濾頁面
Xml代碼
<?xml version="1.0" encoding="UTF-8"?>
<!-- defaultdir 屬性為通用頁面存放的路徑 -->
<decorators defaultdir="/WEB-INF/content/base">
<!-- excludes 為哪些頁面不需要進行裝飾,這通常結(jié)合popup來使用 -->
<excludes>
<pattern>*no-decorate*</pattern>
<pattern>/login*</pattern>
</excludes>
<!-- decorator為指定裝飾頁面的名稱和路徑 -->
<decorator name="main" page="main.jsp">
<!-- pattern 為要過濾哪些頁面? * 代表所有頁面都進行過濾-->
<pattern>*</pattern>
</decorator>
<decorator name="printable" page="printable.jsp"/>
</decorators>
以下為main.jsp代碼
Html代碼
<!--
當使用了SiteMesh后,本頁面main.jsp就會變成所有頁面的模板
我們可以在這個頁面中引入各種的css,js和其他的頁面,
亦可以在這里使用jsp的include標簽引入其他的頁面,
更甚者可以在這里設(shè)定全局的js,例如jQuery的$.(document).ajaxStart(function(){})
-->
<html>
<head>
<!-- decorator:title可以將被過濾的頁面的title填充到這里 -->
<title><decorator:title/></title>
<!-- decorator:head 可以將被過濾的頁面中的head填充到這里 -->
<decorator:head />
</head>
<body>
<div class="content">
<!-- decorator:head 可以將被過濾的頁面中的body填充到這里 -->
<decorator:body />
</div>
總結(jié):
使用了SiteMesh后,更集中的管理了各個頁面的標簽,css,js的引入,雖然在實際開發(fā)當中一般會首先固定各個技術(shù)使用的版本,但由于需求的變更和技術(shù)的更新發(fā)展,有時候不得不更新所使用的版本,大量分散在不同頁面的引入標簽修改起來簡直就是噩夢般的事情,而且SiteMesh的簡單易用,我們何樂而不為的去使用SiteMesh呢?
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報
。
打開APP,閱讀全文并永久保存
查看更多類似文章
猜你喜歡
類似文章
使用SiteMesh簡化網(wǎng)頁布局
SiteMesh:一個優(yōu)于Apache Tiles的Web頁面布局、裝飾框架 - yjhm...
SSH2整合SiteMesh項目
sitemesh性能測試結(jié)果比較驚艷(已經(jīng)補上新的對比測試結(jié)果)
Appfuse1.9.3 for springMVC源碼解讀(1)-- 從web.xml
struts 標簽的引入
更多類似文章 >>
生活服務(wù)
首頁
萬象
文化
人生
生活
健康
教育
職場
理財
娛樂
藝術(shù)
上網(wǎng)
留言交流
回頂部
聯(lián)系我們
分享
收藏
點擊這里,查看已保存的文章
導(dǎo)長圖
關(guān)注
一鍵復(fù)制
下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!
聯(lián)系客服
微信登錄中...
請勿關(guān)閉此頁面
先別劃走!
送你5元優(yōu)惠券,購買VIP限時立減!
5
元
優(yōu)惠券
優(yōu)惠券還有
10:00
過期
馬上使用
×