`

jeesite <meta name="decorator" content="default"/>

 
阅读更多

使用sitemesh的步骤

1. 添加jar文件到classpath

2. 在web.xml中增加过滤器

<!-- Sitemesh -->  
<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>  

  3. 在/WEB-INF中创建decorator.xml文件

<decorators defaultdir="/decorators">  
    <decorator name="main" page="main.jsp">  
         <pattern>/*</pattern>  
    </decorator>  
</decorators>  

     defaultdir:指定了装饰页面的存放路径

    在这里可以使用<decorator>标签配置多个装饰器

 

4. 另外有一个可选的sitemesh.xml文件,放在/WEB-INF目录下。如果没用,则默认读取sitemesh.jar文件中的sitemesh-default.xml文件。这个文件在jar:com.opensymphony.module.sitemesh.factory包中。

 

在这个文件中可以指定使用那些mapper对象来装饰页面,也可以扩展自己的Mapper类。 sitemesh自带的mapper类放在com.opensymphony.module.sitemesh.mapper包中,可以供大家选择使用。

 

5. 这里是今天学习备注的重点 ,com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper 这个类的使用。

 

在sitemesh-default.xml中,可以看到已经声明了这个类,并且可以通过查阅API来获得其使用方法。

在这个文件中可以看到配置了这个类的两个属性

property.1=meta.decorator  
  
property.2=decorator  

  通过查阅API可以找到,只要html文件中包含

<meta name="decorator" content="decoratorname">  
  
<meta name="meta.decorator" content="decoratorname">  

  就可以应用相应的装饰器,而不必在decorator.xml中使用<pattern>来规定哪些页面使用哪些装饰器。

<decorators defaultdir="/decorators">  
    <decorator name="main" page="main.jsp">  
    </decorator>  
</decorators>  

 6. 一点联想:

 

   在com.opensymphony.module.sitemesh.mapper包中我看到了一个叫CookieDecoratorMapper的类,话说可以在用户的cookie中指定装饰器的名字。

 

这样我们可以通过扩展来实现基于用于的个人喜好设定,用户可以自己选择需要应用的装饰器(有点类似QQ空间选择个性主页模板),把装饰器的的名称存放起来,当浏览页面的时候自动去读取这个值以实现主页风格的动态切换。只是有个这个想法,还没有付诸行动,有兴趣的朋友可以试试看。

分享到:
评论

相关推荐

    jsoup jar包

    b.&lt;decorator:title/&gt;这个标签会找到被装饰页面的title(&lt;title&gt;&lt;/title&gt;标签内)内容填入, &lt;decorator:head/&gt;找到被装饰页面的head(&lt;head&gt;&lt;/head&gt;标签内)内容填入,&lt;decorator:body/&gt;找到被装饰页面的body(&lt;body&gt;&lt;/...

    Struts2整合SiteMesh

    &lt;decorator name="default" page="common/decorator.jsp"&gt; &lt;pattern&gt;/*&lt;/pattern&gt; &lt;/decorator&gt; &lt;/decorators&gt; ``` decorator.jsp是实际的页面模板,其中可以包含全局的HTML元素,如页头、页脚等。 4. **创建...

    sitemesh教程

    &lt;param-name&gt;default_encoding&lt;/param-name&gt; &lt;param-value&gt;UTF-8&lt;/param-value&gt; &lt;/init-param&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; ``` - **使用Freemarker模板**: - 创建Freemarker模板文件...

    sitemesh的使用方法demo

    &lt;title&gt;&lt;decorator:title /&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;decorator:body /&gt; &lt;/body&gt; &lt;/html&gt; ``` 在这个例子中,`&lt;decorator:title /&gt;` 和 `&lt;decorator:body /&gt;` 标签会由 Sitemesh 替换为装饰器模板中的相应内容。 ...

    sitemesh装饰器入门

    &lt;s:decorator name="default"&gt; &lt;jsp:body&gt; &lt;!-- your content here --&gt; &lt;/jsp:body&gt; &lt;/s:decorator&gt; ``` 这样,Sitemesh 就知道应该使用哪个装饰器来包装当前页面的内容。 5. **自定义装饰规则**: 如果...

    SiteMesh教程及SiteMesh官方文档翻译

    &lt;title&gt;&lt;decorator:title default="装饰器页面"/&gt;&lt;/title&gt; &lt;decorator:head/&gt; &lt;/head&gt; &lt;body&gt; sitemesh的例子&lt;hr&gt; &lt;decorator:body/&gt; &lt;hr&gt;chen56@msn.com &lt;/body&gt; &lt;/html&gt; ``` **第五步:创建被装饰页面** ...

    Sitemesh学习文档

    &lt;title&gt;&lt;decorator:title default="装饰器页面..." /&gt;&lt;/title&gt; &lt;decorator:head /&gt; &lt;/head&gt; &lt;body&gt; sitemesh的例子&lt;hr&gt; &lt;decorator:body /&gt; &lt;hr&gt;chen56@msn.com &lt;/body&gt; &lt;/html&gt; ``` 最后,创建一个待装饰...

    sitemesh jar包机tld文件

    &lt;decorator:content/&gt; &lt;/body&gt; &lt;/html&gt; ``` 2. `sitemesh-decorator.tld`: 这个文件定义了装饰器(Decorator)的标签,如`&lt;decorator:include&gt;`和`&lt;decorator:head&gt;`等,它们用于在装饰器模板中指定要插入页面...

    Sitemesh 3 的使用及配置

    &lt;mapping decorator="/default-decorator.html"/&gt; ``` 当没有其他的路径匹配时,将使用这个默认装饰器。 - **针对不同路径的不同装饰器**: ```xml &lt;mapping path="/about" decorator="/WEB-INF/views/...

    sitemesh简单demo

    &lt;layout:decorator name="default"&gt; &lt;layout:content/&gt; &lt;/layout:content&gt; ``` 这段代码表示该 JSP 页面将使用名为 `default` 的装饰器,并将页面内容传递给装饰器的 `&lt;layout:content&gt;` 标签。 ### 4. 自定义...

    sitemesh 例子

    &lt;filter-name&gt;Sitemesh&lt;/filter-name&gt; &lt;filter-class&gt;com.opensymphony.module.sitemesh.FilterDispatcher&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;Sitemesh&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/...

    sitemesh入门教材

    &lt;title&gt;&lt;decorator:title default="装饰器页面..." /&gt;&lt;/title&gt; &lt;decorator:head /&gt; &lt;/head&gt; &lt;body&gt; sitemesh 的例子&lt;hr&gt; &lt;decorator:body /&gt; &lt;hr&gt;chen56@msn.com &lt;/body&gt; &lt;/html&gt; ``` 最后,创建一个普通的...

    初试sitemesh实现模块简易整合

    1. **装饰模板**:`default.jsp`模板通常包含页头、页脚、侧边栏等通用部分,并通过`&lt;@page decorator="true"&gt;`标签来标记内容区,如下: ```jsp &lt;%@ taglib uri=...

    Struts2整合SiteMesh技巧

    &lt;decorator name="main" page="main.ftl"&gt; &lt;pattern&gt;/*&lt;/pattern&gt; &lt;/decorator&gt; &lt;/decorators&gt; ``` 这里,`/decorators/main.ftl`指定了布局文件的位置。 #### 自定义装饰器映射 如果需要进一步定制装饰器的...

    sitemesh框架解说

    &lt;title&gt;&lt;sitemesh:property name="title"/&gt;&lt;/title&gt; &lt;/head&gt; ``` 2. **装饰器应用**: 装饰器中,用`sitemesh:content`标签来指定内容页面的主体部分: ```jsp &lt;body&gt; &lt;div id="header"&gt; &lt;!-- 页头内容 --&gt; ...

    sitemesh使用例子

    sitemesh 使用例子。 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;decorators defaultdir="/decorators"&gt; ... &lt;decorator name="index" page="index.jsp"&gt; &lt;pattern&gt;/*&lt;/pattern&gt; &lt;/decorator&gt; &lt;/decorators&gt;

    sitemesh简单教程页面装配器

    &lt;title&gt;&lt;decorator:title default="装饰器页面"/&gt;&lt;/title&gt; &lt;decorator:head/&gt; &lt;/head&gt; &lt;body&gt; sitemesh的例子&lt;hr&gt; &lt;decorator:body/&gt; &lt;hr&gt;chen56@msn.com &lt;/body&gt; &lt;/html&gt; ``` 这个装饰器页面定义了页面...

Global site tag (gtag.js) - Google Analytics