SiteMesh简介二

 

5 WEB-INF下面建立文件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=UTF-8"

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

    </page-parsers>

    <decorator-mappers>

        <mapper

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

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

        </mapper>

    </decorator-mappers>

</sitemesh>

SiteMesh有一个概念,叫做修饰器映射,实现这个概念的接口是DecoratorMapper(init()getDecorator()方法)。映射器在sitemesh.xml里声明。在sitemesh.xml文件里,每一个映射器都是它上一个映射器的父映射。当SiteMesh需要一个修饰器来修饰页面的时候,会在sitemesh.xml里查找映射器,生成找到的第一个映射器的实例并调用getDecorator()方法,在这个方法里尝试查找针对那个页面的修饰器。如果找到了就返回;否则,调用父映射器的getDecorator()方法,反复进行这个过程,直到找到正确的修饰器。

6web目录下建一个index.jsp

<%@ page contentType="text/html; charset=GBK"%>

<html>

     <head>

       <title>index</title>

     </head>

     <body>

         <p>这是index页面的body.</p>

     </body>

</html>

7、访问index.jsp

 

图片

更多的实例可以下载官方的实例。

https://sitemesh.dev.java.net/files/documents/887/129894/sitemesh-example.war

8、再来说说第一节提到的例子,百度和google在一起的例子

图片

例子在上面简单的实例上,做以下几件事。


 

1)、添加一个panel适配器,修改decorators.xml如下

<!-- 指定 main装饰器,该装饰器使用main.jsp页面 -->

    <decorator name="main" page="main.jsp">

    <!--  main装饰器装饰所有的页面 -->

        <pattern>/*</pattern>

</decorator>

<!—_不会被装饰的路径-->

<excludes>

        <pattern>/js/*</pattern>

        <pattern>/images/*</pattern>

        <pattern>/css/*</pattern>

</excludes>

<!—- 没有指定pattern的适配器,不会自动装饰页面 ,可以通过page:applyDecorator来指定 -->

<decorator name="panel" page="panel.jsp"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值