`
柴秉承
  • 浏览: 87521 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

SiteMesh 配置文件

阅读更多

 将 sitemesh_[version].jar 包加到 WEB-INF\lib 下

2.         在 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 > 
 
 

       表示对系统中所有 url 请求均使用 sitemesh Filter 进行拦截。

3.         在 WEB-INF 下配置 sitemesh.xml 和 decorator.xml 配置文件。

Sitemesh.xml

 

 < sitemesh > 

     < property  name ="decorators-file"  value ="/WEB-INF/decorators.xml" /> 

     < excludes  file ="${decorators-file}" /> 

     < page-parsers > 

         < parser  default ="true"  class ="com.opensymphony.module.sitemesh.parser.HTMLPageParser" /> 

         < parser  content-type ="text/html" 

class ="com.opensymphony.module.sitemesh.parser.HTMLPageParser" /> 

         < parser  content-type ="text/html;charset=ISO-8859-1" 

class ="com.opensymphony.module.sitemesh.parser.HTMLPageParser" /> 

     </ page-parsers > 

     < decorator-mappers > 

                   <!--  for print  --> 

         < mapper  class ="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper" > 

                             < param  name ="decorator"  value ="printable"   /> 

                             < param  name ="parameter.name"  value ="printable"   /> 

                             < param  name ="parameter.value"  value ="true"   /> 

         </ mapper > 

         < mapper  class ="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper" > 

             < param  name ="config"  value ="${decorators-file}" /> 

         </ mapper > 

     </ decorator-mappers > 

 </ sitemesh > 
 
 

 

Decorator.xml

 

 < decorators  defaultdir ="/decorators" > 

     < excludes > 

         < pattern > /demos/* </ pattern > 

         < pattern > /resources/* </ pattern > 

         < pattern > /test* </ pattern > 

         < pattern > /FCKeditor/* </ pattern > 

     </ excludes > 

          <!--  decorator for print(has parameter: printable=true) --> 

     < decorator  name ="printable"  page ="decPrintable.jsp" /> 

          < decorator  name ="login"  page ="decLogin.jsp" > 

                    < pattern > *login* </ pattern >            <! —url 映射模式 -- > 

          </ decorator > 

     < decorator  name ="default"  page ="decDefault.jsp" > 

         < pattern > /* </ pattern >                  <! — 缺省的装饰器 -- > 

     </ decorator > 

 </ decorators > 
 
 

在 sitemesh.xml 中配置了两个 DecoratorMapper : PrintableDecoratorMapper 和 ConfigDecoratorMapper 。

PrintableDecoratorMapper 是供打印专用,在 url 后加上 printable=true 即会使用 decorator.xml 中指定的 printable 装饰器来对页面进行装饰,一般来说打印页面是只需要打印本页面的内容,其余的如头、脚、导航栏、左右菜单等是不需要打印的,通过装饰器可以轻松实现打印页面的过滤。

4.         创建一个装饰器 JSP 页面,我建议所有装饰器页面放到 decorators 目录,并且以 dec[ 功能 ].jsp 作为命名方式,如 decPrintable.jsp 、 decDefault.jsp 。

下面是一个装饰器的代码:


 

 

 <! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "
     " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
       
 <%--  Include common set of tag library declarations  for  each layout  --%>
 <% @ include file = " /common/taglibs.jsp " %>
 
 < html xmlns = " http://www.w3.org/1999/xhtml "  xml:lang = " en " >
     < head >
         < decorator:head />
     </ head >
 < body
 < decorator:getProperty property = " body.id "  writeEntireProperty = " true " />
 < decorator:getProperty property = " body.onload "  writeEntireProperty = " true " />
 < decorator:getProperty property = " body.onunload "  writeEntireProperty = " true " />
 >      
         <% @ include file = " /common/header.jsp " %> 
             < h1 >< decorator:getProperty property = " page.heading " /></ h1 >  
             <% @ include file = " /common/messages.jsp "   %>
             < decorator:body />
         < jsp:include page = " /common/footer.jsp " />
 </ body >
 </ html >
 

注意其 <decorator:…> 标签,这些标签将被装饰的 page 页面的相应内容作为属性传入。 Page 页面的相关内容将放在 decorator 标签所指定的位置。

Title :标题

Head :头部,一般是公共的 js 、 css 及 meta 。

Body :被装饰的 page 的主体内容。

5 、 Sitemesh 通过在 sitemesh.xml 中配置 DecoratorMapper 配置映射器,通过在 decorator.xml 中配置装饰器文件及其匹配方式。当有页面需要输出到客户端时,将根据这些配置选择相应的装饰器来进行装饰,将装饰结果返回给客户界面。

 

4.   参考资料
关于 Sitemesh 的 api 及详细使用说明可以参看其官方网站

http://www.opensymphony.com/sitemesh

分享到:
评论

相关推荐

    Sitemesh 3 的使用及配置

    Sitemesh的配置文件位于项目的`/WEB-INF/`目录下,用于定义哪些URL需要应用装饰器以及哪些不需要。 ```xml &lt;sitemesh&gt; *" decorator="/WEB-INF/views/decorators/decorator.html"/&gt; *" exclude="true"/&gt; &lt;/...

    一个简单的Login 应用程序

    - `sitemesh.xml`: SiteMesh配置文件。 - `web.xml`: Web部署描述文件。 3. **项目初始化命令:** - `mvn eclipse:eclipse`: 生成Eclipse工程文件。 - `mvn package`: 打包项目,生成`.war`文件。 - 运行命令...

    SiteMesh教程及SiteMesh官方文档翻译

    然后,可以在`web.xml`中配置Sitemesh过滤器,并在Spring配置文件中配置Freemarker视图解析器。 下面是一个简单的例子,展示了如何在Spring MVC项目中同时使用Sitemesh和Freemarker。 **`web.xml`配置** ```xml ...

    SiteMesh

    4. **配置(Configuration)**: SiteMesh的配置文件(通常为`sitemesh.xml`)用于设置装饰策略,包括哪些URL需要被装饰,以及使用哪个装饰器等。 **使用步骤** 1. **集成SiteMesh**: 将SiteMesh的JAR文件添加到...

    sitemesh入门demo

    - `sitemesh.properties`是Sitemesh的主要配置文件,可以在这里设置默认装饰器、是否启用调试模式等。 6. **实际应用** - 在`sitemesh-demo01`项目中,可以看到一个简单的例子,包括装饰器模板、被装饰的页面和...

    sitemesh

    3. **配置文件(sitemesh.properties)**:sitemesh的配置文件用于定义装饰策略,包括哪些URL应该被装饰,以及使用哪个模板进行装饰。 4. **模板语言(Decorator Templates)**:sitemesh支持自定义模板语言,允许...

    springMVC与sitemesh的结合

    2. **配置Sitemesh**:接下来,需要在Spring MVC的配置文件中启用Sitemesh。这可以通过创建一个DelegatingFilterProxy bean并指向Sitemesh的过滤器实现。例如: ```xml &lt;filter-name&gt;sitemesh &lt;filter-class&gt;...

    java sitemesh 页面框架

    在提供的压缩包中,"SiteMesh"可能包含了Sitemesh的源码、文档、示例项目或者其他配置文件。通过研究这些资源,你可以更好地理解和学习如何在实际项目中应用Sitemesh。学习和掌握Sitemesh能让你在开发Java Web应用时...

    sitemesh3官方下载包

    - **自定义装饰规则**:开发者可以通过编程或者配置文件定义装饰规则,决定哪些页面应该被装饰,以及使用哪个装饰模板。 - **可扩展性**:Sitemesh3提供了插件机制,允许开发者扩展其功能,例如实现自定义的装饰...

    sitemesh3-demo

    在提供的压缩包文件`sitemesh3`中,可能包含了Sitemesh3的库文件、示例项目的源代码、配置文件和其他相关资源。通过学习和分析这些文件,你可以更深入地理解Sitemesh3的工作原理和使用方法,进一步提升你在Web开发中...

    siteMesh demo+文档

    1. **安装SiteMesh**:这通常包括下载SiteMesh的库文件,将其添加到你的项目构建路径中(例如,如果你使用Maven,可以在pom.xml中添加对应的依赖)。 2. **配置SiteMesh**:在web.xml中配置SiteMesh Filter是必要的...

    SiteMesh教程.pdf

    - decorators.xml:这是一个配置文件,用于配置SiteMesh的装饰器和装饰规则,如指定哪个装饰器应用到哪些页面上。 ***Mesh配置: - 在web.xml中配置SiteMesh的Filter和Filter-Mapping,确保SiteMesh能够拦截所有Web...

    freemarker 与sitemesh 整合例子

    1. **配置Sitemesh**:首先,需要在Web应用的`web.xml`配置文件中添加Sitemesh的过滤器。这个过滤器会在每个请求处理之前和之后执行,对页面进行装饰。 2. **创建Freemarker模板**:然后,创建Freemarker模板文件,...

    sitemesh3demo附配置说明

    1. `WEB-INF`: 这个目录下通常会包含`web.xml`配置文件和`decorators.xml`装饰器配置文件。 2. `WEB-INF/classes`或`WEB-INF/lib`: 这些目录存放着项目的类文件或依赖库。 3. `jsp`或`html`文件:这些是实际的页面...

    sitemesh框架简单例子

    这通常在web.xml文件中完成,你需要设置过滤器来启动Sitemesh,并指定哪些页面需要被装饰。默认情况下,Sitemesh会装饰所有HTML内容,但你可以通过配置过滤器来指定特定的URL模式。 然后,创建装饰器模板。装饰器是...

    sitemesh-2.2.1.jar sitemesh-2.2.1.jar

    要使用Sitemesh,开发者需要了解其配置文件(通常为`sitemesh.xml`),以及如何编写装饰器模板。此外,还需要熟悉如何在JSP或Servlet中使用`@decorator`注解或者`&lt;%@ page decorator="..." %&gt;`指令来指定装饰器。 ...

    页面装饰器(sitemesh)实例源代码

    2. **配置web.xml**:在`WEB-INF/web.xml`中,我们需要配置Sitemesh过滤器。添加以下代码段,使Sitemesh能够拦截请求并应用装饰: ```xml &lt;filter-name&gt;...

    spring mvc sitemesh velocity整合

    1. **引入依赖**:首先,需要在项目中添加Spring MVC、Sitemesh和Velocity的相关依赖库,这通常通过Maven或Gradle的配置文件完成。 2. **配置Spring MVC**:在Spring的配置文件中,配置Spring MVC的...

    sitemesh装饰器入门

    `sitemesh.conf` 是 Sitemesh 的核心配置文件,它定义了装饰器的选择规则、装饰器的布局以及一些其他选项。例如,我们可以指定默认的装饰器模板: ``` ``` 3. **创建装饰器模板**: 装饰器(Decorator)是 ...

Global site tag (gtag.js) - Google Analytics