一、拷贝sitemesh-2.4.1.jar(可以去官网下)到项目中的lib下
二、在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>
<!-- 配置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>
三、在WEB-INF下建一个装饰器配置文件,命名为:decorators.xml,默认与web.xml同级,若改变目录,则需要拷贝sitemesh.xml来进行修改。
四、在web项目中添加一个存放装饰器的文件夹,如decorators,页面见源代码。并在decorators.xml中进行配置,配置如下:
-
-
<excludes>
-
<pattern>/login.jsp</pattern>
-
<pattern>/login/*</pattern>
-
</excludes>
-
-
-
<decorator name="main" page="main.jsp">
-
<pattern>/*</pattern>
-
</decorator>
-
-
<decorator name="page" page="page.jsp"></decorator>
<!-- 排除一些页面不使用模版 -->
<excludes>
<pattern>/login.jsp</pattern>
<pattern>/login/*</pattern>
</excludes>
<!-- 构造一个模版页面装饰器 -->
<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>
<decorator name="page" page="page.jsp"></decorator>
五、部署并运行
拷贝一下网上的资源:
1.Sitemesh简介
Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。它不仅仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容,使得它的内容也符合你的页面结构的要求。甚至于它能将HTML文件象include那样将该文件作为一个面板的形式嵌入到别的文件中去。所有的这些,都是GOF的Decorator模式的最生动的实现。尽管它是由java语言来实现的,但它能与其他Web应用很好地集成。
2.与Strust Tiles比较
从使用角度来看,Tiles似乎是Sitemesh标签<page:applyDecorator>的一个翻版。其实sitemesh最强的一个特性是sitemesh将decorator模式用在过滤器上。任何需要被装饰的页面都不知道它要被谁装饰,所以它就可以用来装璜来自php、asp、CGI等产生的页面了。你可以定义若干个装饰器,根据参数动态地选择装饰器,产生动态的外观以满足你的需求。它也有一套功能强大的属性体系,它能帮助你构建功能强大而灵活的装饰器。相比较而言,在这方面Tiles就逊色许多。
3.基本原理
一个请求到服务器后,如果该请求需要sitemesh装饰,服务器先解释被请求的资源,然后根据配置文件获得用于该请求的装饰器,最后用装饰器装饰被请求资源,将结果一同返回给客户端浏览器。
下边是由Jsp和CGI产生的两个页面,它们通过sitemesh装饰后,形成了一致的用户界面。
分享到:
相关推荐
- 如果页面需要装饰,Sitemesh会读取配置的装饰器模板,然后将请求页面的内容插入到装饰器的相应位置。 3. **装饰器(Decorator)** - 装饰器是Sitemesh的核心概念,它是一个HTML文件,定义了页面的基本结构,如...
当用户访问`index.jsp`时,SiteMesh的Filter会自动应用`main.jsp`作为装饰器,将内容页面嵌入到装饰器页面中,形成一个完整的视图,而无需在每个页面中手动包含头部、脚部等元素。 装饰器(Decorator)的概念是设计...
此外,Sitemesh还支持自定义装饰器的加载顺序,以及与Spring、Struts等其他框架的集成。 在实际开发中,Sitemesh可以帮助你提高效率,减少重复工作,并确保网站的整体设计一致性。通过深入学习和实践这个“sitemesh...
- **装饰器(Decorator)**:在Sitemesh中,页面布局被称为装饰器。装饰器是一个HTML模板,它可以包围并装饰其他JSP页面,添加统一的头部、尾部、导航等元素。 2. **Sitemesh工作原理** - **过滤器机制**:...
除了基础功能,sitemesh 还提供了很多高级特性,如:自定义装饰器选择策略、页面属性传递、支持 Velocity 和 FreeMarker 等模板引擎等。这些特性使得 sitemesh 能够适应更复杂的项目需求。 通过这个“sitemesh简单...
当用户访问`index.jsp`时,Sitemesh Filter会自动应用`main.jsp`装饰器,将内容页面嵌入到装饰器页面中,生成最终的页面展示给用户。 Sitemesh与FreeMarker和Java的结合使用,可以让开发者在FreeMarker模板语言中...
入门的demo...siteMesh与freemarker结合。。 siteMesh与velocity结合。。并且在siteMesh.xml用了不同的装饰器。。每个装饰器都有注释。。可以帮助理解。。请看readme.txt
- **过滤器(Filter)**: Sitemesh 使用 Servlet 过滤器机制来捕获请求,应用装饰器,并将结果返回给客户端。 6. **配置与使用** - Sitemesh 配置通常在 web.xml 文件中进行,设置过滤器并指定装饰器模板。 - ...
SiteMesh将原始页面内容插入到装饰器中相应的位置,然后将合并后的结果返回给客户端。这种方式提高了代码的复用性,让Web应用整体保持一致的视觉风格,同时减少了对每个页面单独修改的工作量。 **简单例子** 在...
对于 Sitemesh,此文件可能会解释如何集成 Sitemesh 到现有的 Web 应用中以及如何配置其装饰器模板。 4. **LICENSE.txt** 这个文件列出了 Sitemesh 的授权条款,通常为开源许可证,如 Apache License 2.0,允许...
3. **SiteMesh**:SiteMesh是一个页面布局和装饰框架,它可以帮助开发者统一网站的样式和布局,实现页面模板的复用。在Grails中,SiteMesh被用来处理视图的装饰和布局,确保应用程序具有一致的用户界面风格。 学习...
5. **SiteMesh**:负责页面布局和装饰,统一应用外观。 六、Grails的进阶应用 1. **数据表自定义**:根据业务需求,自定义数据表结构,扩展Grails默认行为。 2. **遗留数据表处理**:对于已有数据库,Grails提供了...
8. **SiteMesh页面布局框架**:用于页面布局和装饰,可以将页面内容嵌入到统一的布局模板中,保持网站风格的一致性。 #### 三、Struts2在Web项目中的应用 - **Struts2的Web项目集成**:通过在web.xml中配置...