今天在做个整合时,决定用sitemesh把几个页面的布局整理下。
很久没使用过了,咋一用还出了不少问题,幸亏网上资料比较多。所以还算比较顺利的解决了。
总结一下
我的版本是struts2 2.1.8
1、struts2 中使用sitemesh一定要用struts2 的插件 struts2-sitemesh-plugin-****.jar
否则是没有效果的
2、在web.xml中的filter顺序
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,struts.xml,struts-tica.xml</param-value>
</init-param>
</filter>
sitemesh的filter一定是在
ActionContextCleanUp 和 StrutsPrepareAndExecuteFilter
之间的,千万别放错了,否则一定出问题
3、上述的弄完之后,可以建立你的模版文件了,下面,我都用自己的页面来举例了
/decorators/basic-theme.jsp
<%@page contentType="text/html; charset=UTF-8"%>
<%@ page pageEncoding="UTF-8" %>
<%@page import="com.qeweb.framework.common.Envir"%>
<%@page import="com.qeweb.tica.vendormgt.action.RegistAC"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<%@ include file="/WEB-INF/tica/common/jsp_includes.jsp"%>
<%
response.setHeader("Cache-Control", "no-cache"); //HTTP 1.1
response.setHeader("Pragma", "no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0);
%>
<% String wwwroot = request.getContextPath();%>
<html>
<head>
<decorator:head></decorator:head>
</head>
<body>
<body style="width: 100%;margin: 0 auto;" >
<center>
<div>
<DIV class="topArc" style="height: 80px;"><img src="<%=ctx %>/framework/images/preference/theme/logo/<%=DisplayType.getThemeType() %>.jpg" width="100%" height="100%"></DIV>
<div id="rbody" class="wrap">
<div class="title">
<h1></h1>
</div>
<decorator:body></decorator:body>
</div>
</div>
</center>
<center>
<font size="2" color="#555555"></font>
</center>
</body>
</html>
4、装饰配置文件
/WEB-INF/decorators.xml
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/decorators">
<excludes>
<pattern>*.js</pattern>
<pattern>*.gif</pattern>
<pattern>*.jpg</pattern>
<pattern>*.png</pattern>
<pattern>*.css</pattern>
</excludes>
<decorator name="basic-theme" page="basic-theme.jsp">
<pattern>/ticavendor/regist*.action</pattern>
</decorator>
</decorators>
至此,最简单的一个sitemesh装配就完成了
分享到:
相关推荐
2. **配置Struts2**:在struts.xml配置文件中,添加SiteMesh插件的配置,使Struts2知道需要使用SiteMesh进行页面装饰: ```xml <constant name="struts.action.excludePattern" value="/decorator.*"/> ...
### Struts2整合SiteMesh技巧 #### 概述 在Web开发中,为了实现页面布局的统一性与可维护性,通常会采用一种称为“页面布局管理”的技术。Struts2框架提供了对SiteMesh的支持,这是一种强大的页面布局管理工具。...
要将Struts2和Sitemesh整合,我们需要两个关键的组件:Sitemesh框架本身(在这个例子中是版本2.4.2)和Struts2的Sitemesh插件(版本2.1.8)。这两个组件的集成使得Struts2能够自动将Sitemesh应用于其返回的页面,...
在Struts2中整合SiteMesh,你需要将sitemesh-2.3.jar和Struts2-sitemesh-plugin-2.0.6.jar添加到项目的类路径下。然后,在`web.xml`中配置ActionContextCleanUp过滤器和SiteMesh的PageFilter,这两个过滤器分别用于...
Struts2和Sitemesh是两个非常流行的Java Web开发框架,它们在构建高效、结构化的MVC(模型-视图-控制器)应用中起到关键作用。Struts2是一个基于MVC设计模式的开源框架,主要用于控制应用程序的流程,而Sitemesh则是...
struts框架与sitemesh框架整合的插件,在java web开发中可以制作模板页,使自己做的网站看起来更专业
在源码中,可以看到Sitemesh配置和过滤器的实现,以及如何与Struts2整合,确保每个Action的结果都能被正确装饰。 3. **FreeMarker模板引擎**:FreeMarker是一个基于模板的语言,它与Java代码分离,使得视图层更加...
在Struts2与Sitemesh的整合中,我们通常会在Struts2的配置文件中添加Sitemesh的拦截器,这样,每次Struts2处理完Action返回的结果后,Sitemesh会自动对结果页面进行装饰。这样不仅简化了开发者的工作,也让网站的...
4. **标记可装饰的页面**:在 Struts2 的 Action 类或者 JSP 页面中,使用 `@Decorator` 注解或 `<sitemesh:meta>` 标签指定页面是否需要被装饰以及使用的装饰器名称。 例如,在 Action 类中: ```java @Decorator...
Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大 量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。 它不仅仅能处理动态的...
在SSH2中,Spring负责管理Struts2的Action、Hibernate的SessionFactory以及其他的业务组件,使得整个应用更加灵活和可维护。 **Struts2框架**: Struts2是一个MVC框架,处理用户请求并调用相应的业务逻辑。它提供了...
1. 添加依赖:整合SSH,需要在项目中引入相应的jar包,包括Struts2、Spring、iBatis以及它们的依赖库,例如sitemesh用于页面装饰。确保包含所有必要的jar,如描述中提到的,这里有18个jar包,涵盖了基本需求。 2. ...
第10章 Struts 2的标签库,第11章 Struts 2的Ajax支持,第12章 使用FreeMarker充当表现层,第13章 整合Spring,第14章 整合JSF,第15章 整合SiteMesh,第16章 整合JasperReports,第17章 整合JFreeChart,第18章 ...
本篇文章将详细介绍如何在项目中初步整合Sitemesh,以便实现模块化的设计。 ### 一、Sitemesh 概述 1. **装饰模式**:Sitemesh 使用装饰模式,通过拦截HTTP请求,动态地将页面内容与装饰模板结合,形成最终的HTML...
在Struts2中,可以使用FreeMarker作为视图层模板,方便渲染页面。 - **Hibernate**:是一个强大的ORM框架,可以自动处理对象与数据库之间的映射,提供了更高级的特性如缓存和查询语言。虽然本案例中主要讨论iBatis,...
配置`decorator.xml`,定义装饰器模板,然后在Struts2的配置中启用SiteMesh拦截器,实现页面装饰。 通过以上步骤,我们可以构建一个完整的Struts2+Spring+Hibernate整合应用,实现用户登录、注册、修改和删除等...
它们各自承担着不同的职责,并且在实际项目中经常被整合使用,形成了所谓的"SSH2"(Struts2 + Spring + Hibernate)框架组合,加上JPA和SiteMesh,进一步提升了开发效率和应用的可维护性。 1. **Struts2**:这是一...
8. `struts2-sitemesh-plugin-2.0.11.jar`:整合Sitemesh进行页面布局和装饰。 Spring框架的核心组件主要是`spring.jar`,它提供: 1. 依赖注入(DI)和控制反转(IoC):使得对象间的依赖关系可以在运行时自动管理...