decorator 装饰器模板 详解

简介: 要使用decorator标签需要下载sitemesh.jar包. decorator标签可以轻松解决页面布局的问题,轻松是因为相比标签(需要在每个页面都用他引入JSP)而 言,decorator标签的使用很简便,只需要在配置文件decorators.xml进行相应的配置再加上一个装饰器(其实就是一个JSP页面)即 可. 加上强大的过滤器,你可以装饰何一个被打开的页面,而不用像以前一样加工每一个JSP页面。

要使用decorator标签需要下载sitemesh.jar包.
decorator标签可以轻松解决页面布局的问题,轻松是因为相比<include>标签(需要在每个页面都用他引入JSP)而 言,decorator标签的使用很简便,只需要在配置文件decorators.xml进行相应的配置再加上一个装饰器(其实就是一个JSP页面)即 可.


加上强大的过滤器,你可以装饰何一个被打开的页面,而不用像以前一样加工每一个JSP页面。


装饰器例子:

<excludes>

  < pattern > /Login* </ pattern >

 </excludes>


可以定义JSP页面,也可以定义为URL请求!


<decorator name=“pop" page=“PopPage.jsp">
 
        <pattern>/showinfo.jsp*</pattern>
 
        <pattern>
 
              /myModule/GreatWallDetailAction.do*
          
</pattern>
 
    </decorator>
<excludes> 标签代表不对定义的请求名进行装饰
<decorator> 标签代表对定义的请求名进行相应的装饰




详细:decorators.XML


<!-- defaultdir指定装饰器文件所在的路径 -->
<decorators defaultdir="/decorators">
    <!-- 在excludes元素下指定的页面将不会由SiteMesh装饰 -->
    <excludes>
        <pattern>/login.jsp</pattern>
        <pattern>/sessionTimeout.jsp</pattern>    
        <pattern>/*.action*</pattern>
        <pattern>/pages/getMenu.jsp</pattern>     

    </excludes>
    
    <!-- 创建名为main的装饰器,装饰器页面为main.jsp,用于装饰pattern指定的URL页面 -->
    <decorator name="main" page="main.jsp">   
        <pattern>/*</pattern>
        
        
    </decorator>
    
    <!-- 定义一个装饰器,该装饰器默认不装饰任何页面 -->
<!--    <decorator name="panel" page="panel.jsp"/>-->




main.JSP:


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
	<title></title>

  </head>
  <body>
	<div id="mainContainer-back">
	  <!-- header -->
	  <%@include file="/common/backHeader.jsp"%>
	  <!-- leftBar -->
 
	  <div id="mainContent-back">
		<div class="content">
		  <decorator:body/>
		</div>
	  </div>
	  <!-- footer -->
	  <%@include file="/common/backFooter.jsp"%>
	</div>
  </body>
</html>


目录
相关文章
|
28天前
22_自定义装饰器
22_自定义装饰器
69 0
|
28天前
|
JavaScript
03_装饰器
03_装饰器
45 1
|
8月前
|
JavaScript 前端开发 编译器
StencilJs 学习之组件装饰器
Stencil 是一个生成 Web Components(更确切地说,是自定义元素)的编译器。Stencil 将最流行的框架的最佳概念结合到一个简单的构建时工具中。 现在让我们一起学习其中的装饰器部分。
54 0
|
4月前
|
数据安全/隐私保护 Python
解释装饰器(decorator)的功能和用法。
解释装饰器(decorator)的功能和用法。
|
存储 编译器 索引
学习TypeScript20(装饰器Decorator)
定义一个类装饰器函数 他会把ClassA的构造函数传入你的watcher函数当做第一个参数
80 0
学习TypeScript20(装饰器Decorator)
|
开发者 Python
装饰器详解|学习笔记
快速学习装饰器详解
76 0
|
Python
Python编程:decorator装饰器
Python编程:decorator装饰器
|
JSON 数据格式
装饰器的实际应用
使用装饰器模式改造slf4j打印json格式日志
696 0
装饰器的实际应用