- 浏览: 1592080 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
1.导入Struts2的jar 和 sitemesh.jar 和 Struts2-sitemesh-plugin.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
sitemesh-2.4.2.jar
struts2-core-2.3.4.jar
struts2-sitemesh-plugin-2.3.4.1.jar
xwork-core-2.3.4.jar
2.在web.xml中配置 Struts sitemesh拦截器 注意有一定的顺序
3.在webroot下的descorators目录下建立 myDecorator.jsp 装饰器页面
4.在web-inf 下建立 装饰器描述文件 decorators.xml
5.建立 实体类 Song.java
6.action
7.配置 struts.xml
8.allSongs.jsp
9.访问localhost:8080/Struts2AndSiteMesh/songs/allSongs.action 可以看到 页面中加入
top 和bottom
如果将 decorations.xml中的pattern 改成 <pattern>/singer/*</pattern>
那上面的访问的页面就没有经过装饰器页面 修饰
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
sitemesh-2.4.2.jar
struts2-core-2.3.4.jar
struts2-sitemesh-plugin-2.3.4.1.jar
xwork-core-2.3.4.jar
2.在web.xml中配置 Struts sitemesh拦截器 注意有一定的顺序
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!--用来消除sitemesh 拦截器 Struts2拦截器的冲突 使之兼容--> <filter> <filter-name>struts-cleanup</filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter> <filter-name>sitemesh</filter-name> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class> </filter> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
3.在webroot下的descorators目录下建立 myDecorator.jsp 装饰器页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %> <%@ taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title><decorator:title default="装饰器页面"/></title> <decorator:head/> </head> <body> <div>top</div> <hr> <div> <decorator:body/> </div> <hr> <div>bottom</div> </body> </html>
4.在web-inf 下建立 装饰器描述文件 decorators.xml
<?xml version="1.0" encoding="UTF-8"?> <decoratos defaultdir="/decorators"> <decorator name="myDecorator" page="myDecorator.jsp"> <pattern>/songs/*</pattern> </decorator> </decoratos>
5.建立 实体类 Song.java
private String songName; private String singer; private String songTime; //get set
6.action
package com.sh.action; import java.util.ArrayList; import java.util.List; import com.opensymphony.xwork2.ActionSupport; import com.sh.entity.Song; public class AllSongs extends ActionSupport { private List<Song> allSongs=new ArrayList<Song>(); public List<Song> getAllSongs() { return allSongs; } public void setAllSongs(List<Song> allSongs) { this.allSongs = allSongs; } @Override public String execute() throws Exception { // TODO Auto-generated method stub Song song1=new Song(); song1.setSongName("浪子心声"); song1.setSinger("刘德华"); song1.setSongTime("3:41"); Song song2=new Song(); song2.setSongName("中国话"); song2.setSinger("SHE"); song2.setSongTime("4:18"); Song song3=new Song(); song3.setSongName("丁香花"); song3.setSinger("唐磊"); song3.setSongTime("4:05"); allSongs.add(song1); allSongs.add(song2); allSongs.add(song3); return SUCCESS; } }
7.配置 struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.i18n.encoding" value="utf-8"/> <package name="default" extends="struts-default" namespace="/songs"> <action name="allSongs" class="com.sh.action.AllSongs"> <result>/allSongs.jsp</result> </action> </package> </struts>
8.allSongs.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>Struts2AndStieMesh</title> </head> <body> <center> <br/> <div> <ul style="list-style: none"> <li style="float: left; width: 100px;">歌名</li> <li style="float: left; width: 100px;">歌手</li> <li style="float: left; width: 100px;">时长</li> <div style="clear: both;"></div> </ul> <s:iterator value="allSongs"> <ul style="list-style:none"> <li style="float: left; width: 100px;"><s:property value="songName"/></li> <li style="float: left; width: 100px;"><s:property value="singer"/></li> <li style="float: left; width: 100px;"><s:property value="songTime"/></li> <div style="clear: both;"></div> </ul> </s:iterator> </div> <br/> </center> </body> </html>
9.访问localhost:8080/Struts2AndSiteMesh/songs/allSongs.action 可以看到 页面中加入
top 和bottom
如果将 decorations.xml中的pattern 改成 <pattern>/singer/*</pattern>
那上面的访问的页面就没有经过装饰器页面 修饰
- Struts2AndSiteMesh.zip (3.5 MB)
- 下载次数: 147
评论
1 楼
java-lxm
2015-05-28
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
这不是已经过时了吗
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
这不是已经过时了吗
发表评论
-
解决getOutputStream() has already been called for this response
2014-07-30 19:16 3319java.lang.IllegalStateException ... -
Struts2 + ajaxFileUpload 异步上传文件
2013-12-04 19:33 1891ajaxFileUpload下载地址http://www.ph ... -
Struts2 Action 解析提交的XML
2013-10-16 12:30 1640package com.bjdata.bjsearch.p ... -
MyBatis+Spring+Struts2
2012-11-28 00:32 10627MyBatis3.1.1+Spring3.1.2+Struts ... -
Ibatis 整合spring + Struts2 加入OSCACHE
2012-11-14 00:10 4562说明: 使用 spring2.5 +ibatis2.3 ... -
Struts2中使用JfreeChart
2012-11-06 09:02 16451.jar commons-fileupload-1.2.2. ... -
SiteMesh简单应用
2012-11-05 10:11 15991.在javaweb中加入 sitemesh-2.4.2.ja ... -
Struts2 编写安全策略(四十五)
2012-09-23 23:53 2298编写安全策略 包含(1 ... -
SSH2整合完整案例(四十三)
2012-09-14 09:34 20690注解配置:Struts2+Spring2.5+Hibernat ... -
Struts2 阻止表单重复 和 等待页面(四十四)
2012-09-23 21:13 2146表单重复提交现象 导 ... -
Struts2 文件上传,下载,删除(四十一)
2012-09-10 23:37 12337本文介绍了: 1.基于表单的文件上传 2.Struts 2 的 ... -
Struts2 文件上传,下载的类型(四十二)
2012-09-06 23:18 2003声明: 以下复制他人的!!! Struts2 文件上传 之 ... -
Struts2 常用标签使用(三十九)
2012-09-03 09:28 64301.append标签 使用append标签可以把多个集合对 ... -
Struts2 timer拦截器(三十二)
2012-08-31 02:17 20741.Strus2系统拦截器中,timer拦截器可以实现输出Ac ... -
Struts2 常用标签使用(三十九)
2012-09-03 00:50 51.append标签 使用append标签可以把多个集合对 ... -
Struts2 主题和模版设置(四十)
2012-09-03 20:24 4146----------------Struts2 主题----- ... -
Struts2 如何使用OGNL表达式(三十八)
2012-08-30 20:55 50831.OGNL是Object Graph Navitagtion ... -
Struts2 使用Validation框架验证数据(三十七)
2012-08-30 11:25 18467A:在Struts2的框架汇中,开发者可以通过继承Action ... -
Struts2 使用Validation框架验证数据(三十七)
2012-08-29 14:08 9A:在Struts2的框架汇中,开发者可以通过继承Action ... -
Struts2 iterator 标签遍历 Map,List,数组(三十六)
2012-08-26 18:30 205301.使用iterator 标签 遍历 数组,Map,List ...
相关推荐
### Struts2整合SiteMesh技巧 #### 概述 在Web开发中,为了实现页面布局的统一性与可维护性,通常会采用一种称为“页面布局管理”的技术。Struts2框架提供了对SiteMesh的支持,这是一种强大的页面布局管理工具。...
Struts2和Sitemesh是两个非常流行的Java Web开发框架,它们在构建高效、结构化的MVC(模型-视图-控制器)应用中起到关键作用。Struts2是一个基于MVC设计模式的开源框架,主要用于控制应用程序的流程,而Sitemesh则是...
要将Struts2和Sitemesh整合,我们需要两个关键的组件:Sitemesh框架本身(在这个例子中是版本2.4.2)和Struts2的Sitemesh插件(版本2.1.8)。这两个组件的集成使得Struts2能够自动将Sitemesh应用于其返回的页面,...
struts框架与sitemesh框架整合的插件,在java web开发中可以制作模板页,使自己做的网站看起来更专业
在Struts2与Sitemesh的整合中,我们通常会在Struts2的配置文件中添加Sitemesh的拦截器,这样,每次Struts2处理完Action返回的结果后,Sitemesh会自动对结果页面进行装饰。这样不仅简化了开发者的工作,也让网站的...
Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大 量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。 它不仅仅能处理动态的...
在源码中,可以看到Sitemesh配置和过滤器的实现,以及如何与Struts2整合,确保每个Action的结果都能被正确装饰。 3. **FreeMarker模板引擎**:FreeMarker是一个基于模板的语言,它与Java代码分离,使得视图层更加...
而Struts2 SiteMesh 插件则使得整合 SiteMesh 和 Struts2 框架变得更加方便,让开发者可以充分利用 SiteMesh 的功能来提升用户体验。 首先,我们需要理解 Struts2 是一个基于 Model-View-Controller(MVC)设计模式...
第10章 Struts 2的标签库,第11章 Struts 2的Ajax支持,第12章 使用FreeMarker充当表现层,第13章 整合Spring,第14章 整合JSF,第15章 整合SiteMesh,第16章 整合JasperReports,第17章 整合JFreeChart,第18章 ...
在SSH2集成中,Sitemesh可以用来装饰Struts2的Action结果页面,确保每个页面都有统一的头部、底部和侧边栏等元素。 **Spring框架**: Spring的核心是IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented ...
1. 添加依赖:整合SSH,需要在项目中引入相应的jar包,包括Struts2、Spring、iBatis以及它们的依赖库,例如sitemesh用于页面装饰。确保包含所有必要的jar,如描述中提到的,这里有18个jar包,涵盖了基本需求。 2. ...
在Struts2中整合SiteMesh,你需要将sitemesh-2.3.jar和Struts2-sitemesh-plugin-2.0.6.jar添加到项目的类路径下。然后,在`web.xml`中配置ActionContextCleanUp过滤器和SiteMesh的PageFilter,这两个过滤器分别用于...
8. `struts2-sitemesh-plugin-2.0.11.jar`:整合Sitemesh进行页面布局和装饰。 Spring框架的核心组件主要是`spring.jar`,它提供: 1. 依赖注入(DI)和控制反转(IoC):使得对象间的依赖关系可以在运行时自动管理...
【Struts2+Spring+Hibernate 整合应用】 在Java Web开发中,Struts2、Spring和Hibernate是三个非常重要的开源框架。它们各自解决了不同层面的问题,而将它们整合在一起可以构建出高效、灵活和可维护的Web应用程序。...
4. **Spring与Struts2整合**:添加Spring插件到Struts2的配置文件,使Spring能够管理Struts2的Action实例。 5. **Spring与iBatis整合**:使用Spring的JDBC模板或MyBatis-Spring库,将iBatis的SqlSessionFactory注入...
本篇文章将详细介绍如何在项目中初步整合Sitemesh,以便实现模块化的设计。 ### 一、Sitemesh 概述 1. **装饰模式**:Sitemesh 使用装饰模式,通过拦截HTTP请求,动态地将页面内容与装饰模板结合,形成最终的HTML...
第五章可能涵盖Struts2的模型部分,包括数据持久化、DAO设计模式以及与ORM框架(如Hibernate、MyBatis)的整合。 第六章可能讲解Struts2的国际化和本地化支持,如何设置资源文件以支持多种语言,并在应用中动态切换...