博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sitemesh 3使用及配置
阅读量:6401 次
发布时间:2019-06-23

本文共 2469 字,大约阅读时间需要 8 分钟。

hot3.png

1 . Sitemesh 3 简介

Sitemesh 是一个网页布局和修饰的框架,基于 Servlet 中的 Filter,类似于 ASP.NET 中的‘母版页’技术。参考:,相关类似技术:。

官网: 。

2 . Sitemesh 3 下载

最新版本:3.0.0-SNAPSHOT

① GitHub 地址:

② maven:

2   
org.sitemesh
3   
sitemesh
4   
3.0.0

3 . 配置 Sitemesh 3 过滤器

在 web.xml 中添加 Sitemesh Filter: 

复制代码

 1 
 2  3   ... 4  5   
 6     
sitemesh
 7     
org.sitemesh.config.ConfigurableSiteMeshFilter
 8   
 9   
10     
sitemesh
11     
/*
12   
13   14 

复制代码

4 . 准备两个页面:demo.html 和 decorator.html

① demo.html - “被装饰的页面”,实际要呈现的内容页。

复制代码

1 2 3 4     内容页的标题5 6 7     内容页的body部分8 9 

复制代码

② decorator.html - “装饰页面”,所谓的“母版页”。

复制代码

 1  2  3  4  5     <sitemesh:write property='title' /> - ltcms 6  7 
 8  9 10     
header
11     
12     demo.html的title将被填充到这儿:13     
14     demo.html的body将被填充到这儿:15     
16     
17     
footer
18 19 

复制代码

5 . 添加 /WEB-INF/sitemesh3.xml

复制代码

3     
4     
5 6     
7     

复制代码

6 . 运行效果

访问 demo.html 页面,实际效果如下:

7 . sitemesh3.xml 配置详解

复制代码

 1 
 2     
 5   
text/html
 6   
application/vnd.wap.xhtml+xml
 7   
application/xhtml+xml
 8   ... 9   10   
11   
12   13   
14   
15   
16 17   
18   
19     
/articles/*
20     
/decorators/article.html
21     
/decorators/two-page-layout.html
22     
/decorators/common.html
23   
24 25   
26   
27   
28   29   
30   
31     
32     
33   
34   ...35 36 

复制代码

8 . 自定义 tag 规则

Sitemesh 3 默认只提供了 body,title,head 等 tag 类型,我们可以通过实现 TagRuleBundle 扩展自定义的 tag 规则:

复制代码

 1 public class MyTagRuleBundle implements TagRuleBundle { 2     @Override 3     public void install(State defaultState, ContentProperty contentProperty, 4             SiteMeshContext siteMeshContext) { 5         defaultState.addRule("myHeader", new ExportTagToContentRule(contentProperty.getChild("myHeader"), false)); 6          7     } 8      9     @Override10     public void cleanUp(State defaultState, ContentProperty contentProperty,11             SiteMeshContext siteMeshContext) {12     }13 }

复制代码

最后在 sitemesh3.xml 中配置即可:

2     

 

转载于:https://my.oschina.net/xiehongfei/blog/402749

你可能感兴趣的文章
Why is applicationhost.config still being added to source control even thought it's in gitignore
查看>>
微信网页授权java实现
查看>>
用StackExchange.Redis客户端连接阿里云Redis服务遇到的问题
查看>>
Chapter 1 First Sight——15
查看>>
约束篇
查看>>
leetCode 78.Subsets (子集) 解题思路和方法
查看>>
机器学习入门之四:机器学习的范围(转载)
查看>>
即将成为传奇的微软
查看>>
Android项目实战--手机卫士18--读取用户的短信内容以及短信备份
查看>>
nanosleep纳秒级延迟
查看>>
[C#] 我的log4net使用手册
查看>>
FineUI官方论坛出现空白页的解决办法!
查看>>
进程和线程之间的通信
查看>>
Android MIFARE NFCA源码解析
查看>>
Maven自定义Archetype(zz)
查看>>
设计模式java----单例模式
查看>>
西西弗的石头----读《哲学家都干了些什么》有感
查看>>
【OCR技术系列之二】文字定位与切割
查看>>
【300】◀▶ IDL - ENVI API
查看>>
Docker初体验
查看>>