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>
    </filter-mapping>


第二步:
在WEB-INF下新建decorators.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<decorators defaultdir="/WEB-INF/layouts/"><!-- 此目錄隨意 -->
    <!-- 此處用來定義不需要過濾的頁面 -->
    <excludes>
        <pattern>/static/*</pattern>
    </excludes>


    <!-- 用來定義裝飾器要過濾的頁面 -->
    <decorator name="default" page="default.jsp"><!-- 此爲裝飾頁面地址 -->
        <pattern>/*</pattern>
    </decorator>
</decorators>


<?xml version="1.0" encoding="utf-8"?>
<decorators defaultdir="/WEB-INF/layouts/">
<decorator name="default" page="default.jsp">
</decorator>
<decorator name="admin" page="admin.jsp">
</decorator>
</decorators>
<meta name="decorator" content="default" />//也可以在需要的頁面導入即可
第三步:
編寫對應路徑下的裝飾頁面default.jsp:
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>  
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


<c:set var="ctx" value="${pageContext.request.contextPath}" />


<!DOCTYPE html>
<html>
<head>
<title>QuickStart示例:<sitemesh:title/></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-store" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<link type="image/x-icon" href="${ctx}/static/images/favicon.ico" rel="shortcut icon">
<link href="${ctx}/sc/bootstrap/2.3.0/css/bootstrap.min.css" type="text/css" rel="stylesheet" />
<link href="${ctx}/sc/jquery-validation/1.11.0/validate.css" type="text/css" rel="stylesheet" />
<link href="${ctx}/css/base/default.css" type="text/css" rel="stylesheet" />
<script src="${ctx}/sc/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="${ctx}/sc/jquery-validation/1.11.0/jquery.validate.min.js" type="text/javascript"></script>
<script src="${ctx}/sc/jquery-validation/1.11.0/messages_bs_zh.js" type="text/javascript"></script>
<sitemesh:head/>
</head>


<body>
    <div class="container">
        <%@ include file="/WEB-INF/layouts/header.jsp"%><!-- 此爲裝飾頁面的頭部,可直接寫 -->
        <div id="content">
            <sitemesh:body/>
        </div>
        <%@ include file="/WEB-INF/layouts/footer.jsp"%><!-- 此爲裝飾頁面的尾部,可直接寫 -->
    </div>
    <script src="${ctx}/sc/bootstrap/2.3.0/js/bootstrap.min.js" type="text/javascript"></script>
</body>
</html>


最終頁面標題爲:QuickStart示例:<sitemesh:title/>
最終頁面頭部爲:此模板頭部加自己頭部<sitemesh:head/>
最終頁面身體爲: 
<div class="container">
        <%@ include file="/WEB-INF/layouts/header.jsp"%><!-- 此爲裝飾頁面的頭部,可直接寫 -->
        <div id="content">
            <sitemesh:body/>
        </div>
        <%@ include file="/WEB-INF/layouts/footer.jsp"%><!-- 此爲裝飾頁面的尾部,可直接寫 -->
    </div>
<script src="${ctx}/sc/bootstrap/2.3.0/js/bootstrap.min.js" type="text/javascript"></script>
僅僅靠調用<sitemesh:body/><sitemesh:head/><sitemesh:title/>三個標籤提取原網頁進行修飾
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章