91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 網絡安全 > 
  • 使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

發布時間:2020-06-28 18:29:10 來源:網絡 閱讀:434 作者:lzwxx 欄目:網絡安全

一、SiteMesh介紹

SiteMesh是一個Java WEB項目的網頁布局和修飾框架。使用SiteMesh后就不再需要在每個頁面中都用<jsp:include>標簽引入頁頭、頁尾、導航等其他公用頁面了。

  • 可以將網頁的內容和頁面結構分離,達到頁面結構共享的目的。

  • 頁面裝飾效果耦合在目標頁面中,無需使用include指令顯示包含裝飾效果,目標頁面和裝飾頁面完全分離

  • 整個web應用可以使用相同的裝飾頁面,風格統一,整體效果更好

  • SiteMesh通過Filter攔截請求和響應,給原始頁面加入裝飾,再把裝飾后的結果返回給客戶端。

  • 根據頁面URL匹配規則查找合適的裝飾模板頁

  • 提取被訪問頁的內容,放置到裝飾模板中的適當位置。

 

二、業務場景使用

比如常見的就是crm系統,左邊的樹形菜單就是一致的,變化的右邊主體部分(即被裝飾的頁面)。

使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

 

 

三、SiteMesh工作原理

  sitemesh應用Decorator模式,用filter截取request和response,把頁面組件head,content,banner、bottom結合為一個完整的視圖。通常我們都是用include標簽在每個jsp頁面中來不斷的包含各種header, stylesheet, scripts and footer。見下圖

使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

當用戶請求home.jsp,并且服務器處理完畢正準備返回數據之時,它被SiteMesh Filter攔截了下來,并且把數據包裝成一個Page對象,具體是Page page = parsePage(request, response, chain)的調用,然后,它會去查詢decorators.xml文件,看看該頁面是否需要裝飾[if (decorator != null && decorator.getPage() != null)]?是,則應用裝飾器[applyDecorator(page, decorator, request, response)],否則,就發送原來的沒經過裝飾的頁面[writeOriginal(response, page);]。

 

四、sitemesh應用配置

首先我們要到http://www.opensymphony.com/sitemesh/下載我們需要的jar包:sitemesh-2.4.jar

然后分三步走,第一步:web.xml配置;第二步:decorate.xml配置;第三步:裝飾頁面

4.1 web.xml配置

使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

    <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>/*</url-pattern>
    </filter-mapping>

使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

4.2 decorate.xml 配置

在WEB-INF目錄下新建一個decorators.xml文件(/decorator是你的包裝jsp根路徑在這里main.jsp和panel.jsp都是包裝jsp,a.jsp,b,jsp是被包裝jsp)

使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

<?xml version="1.0" encoding="UTF-8"?><decorators>
    <excludes>
        <pattern>/resources/**</pattern>
        <pattern>/system/login_index.do</pattern>
        <pattern>/system/login.do</pattern>
        <pattern>/system/close_window.do</pattern>
        <pattern>/system/login_force.jsp</pattern>
        <pattern>/system/info.jsp</pattern>
        <pattern>/index.jsp</pattern>
        <pattern>/usermemcached/**</pattern>
    </excludes>
    <decorator name="main" page="/system/main.do">
        <pattern>/**</pattern>
    </decorator></decorators>

使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

用decrator指定裝飾模板與URL的對應關系,也可以用excludes配置那些URL不需要模板控制。

4.3 裝飾頁面

使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %><html>  <head>    <title> <decorator:title default="default title"/> </title> 
    <decorator:head/>  </head>  <body /> >
        <div id="content" class="container" >
                <c:if test="${not empty actionResult}">
                    <div class="alert alert-${actionResult.type}">
                        <button class="close" type="button" data-dismiss="alert">X</button>
                        <spring:message code="${actionResult.message}"></spring:message>
                    </div>
                </c:if>
                <!-- 所有被攔截器攔截后,匹配的url頁面都會插入到此 -->
                <decorator:body></decorator:body>
            </div>    ......
    <jsp:include page="/footer.jsp"></jsp:include>  </body></html>

使用 sitemesh/decorator裝飾器裝飾jsp頁面(原理及詳細配置)

參數說明:

<decorator:head />

    填充被裝飾頁面的head標簽內容

<decorator:body />

    填充被裝飾頁面的body標簽內容


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍山县| 井研县| 府谷县| 青田县| 灵宝市| 仪陇县| 卫辉市| 慈溪市| 丹东市| 黄大仙区| 祁阳县| 绥芬河市| 南华县| 安新县| 旬邑县| 新晃| 安达市| 奉新县| 海南省| 侯马市| 泰州市| 秭归县| 阳江市| 贵州省| 昌邑市| 葵青区| 渝中区| 金沙县| 郯城县| 铁岭市| 金川县| 江西省| 绥中县| 楚雄市| 同江市| 武宣县| 崇礼县| 泌阳县| 朔州市| 泉州市| 闻喜县|