本文采用struts2.3.16+hibernate3.6+spring3.2.8进行整合
jar包列表
- antlr-2.7.6.jar
- aopalliance-1.0.jar
- asm-3.3.jar
- asm-commons-3.3.jar
- aspectjweaver.jar
- commons-collections-3.1.jar
- commons-dbcp-1.2.1.jar
- commons-fileupload-1.3.1.jar
- commons-io-2.2.jar
- commons-lang3-3.1.jar
- commons-logging-api.jar
- commons-logging.jar
- commons-pool-1.2.jar
- dom4j-1.6.1.jar
- freemarker-2.3.19.jar
- hibernate-jpa-2.0-api-1.0.1.Final.jar
- hibernate3.jar
- javassist-3.18.1-GA.jar
- jta-1.1.jar
- mysql-connector-5.1.8.jar
- ognl-3.0.6.jar
- slf4j-api-1.6.1.jar
- spring-aop-3.2.8.RELEASE.jar
- spring-beans-3.2.8.RELEASE.jar
- spring-context-3.2.8.RELEASE.jar
- spring-context-support-3.2.8.RELEASE.jar
- spring-core-3.2.8.RELEASE.jar
- spring-expression-3.2.8.RELEASE.jar
- spring-jdbc-3.2.8.RELEASE.jar
- spring-orm-3.2.8.RELEASE.jar
- spring-tx-3.2.8.RELEASE.jar
- spring-web-3.2.8.RELEASE.jar
- struts2-convention-plugin-2.3.16.1.jar
- struts2-core-2.3.16.1.jar
- struts2-spring-plugin-2.3.16.1.jar
- xwork-core-2.3.16.1.jar
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>SSH1</display-name>
<!--
当hibernate采用懒加载时需要用到此过滤器,位于struts过滤器之前,
因为必须等struts处理完JSP后才能关闭session;如果spring没有配置
事务边界,则openSessionInView会认为所有事务为readonly,进行增删
改动作时会报错
-->
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<!-- 查看源码可知,可过滤器依赖名字为“sessionFactory”的bean,
如果默认名字不是“sessionFactory”,需要加如下初始化参数。
-->
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sf</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>openSessionInView</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>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring容器初始化 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 加载的配置文件,具体参考spring的文章 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:beans.xml</param-value>
</context-param>
</web-app>
另外几个注意点
1.struts2集成spring需加入struts-spring-plugin-2.3.16.jar,在此jar包中有个struts-plugin.xml,其中有个属性为struts.objectfactory=spring。
3.action有两种产生方式
3.1 由struts产生,会自动产生多实例
action中的属性会自动按照name注入(对应struts-spring.xml的属性为struts.objectfactory.spring.autowire=name),如果存在对应名字的bean,则属性不需要加@resource注解;如果不存在相应的名字的bean,则会注入失败,此时应该加上@Resource。或者将struts.objectfactory.spring.autowire=type。
action示例注解如下:
@Action(value="userAction",
results={@Result(name="list",location="/listuser.jsp")})
3.2 由spring产生
action交由spring管理。示例如下:
@Controller("userAction")
@Scope("prototype")
@Action(className="userAction",value="userAction"
results={@Result(name="list",location="/listuser.jsp")})
注意scope注解必须加,以及@Action中加className代表引用的spring容器的bean
4.中文问题,有如下几种办法
a.在struts2.1.6以上版本,直接找struts默认配置文件default.properties文件中的常量struts.i18n.encoding,看看此属性的值是什么,默认是UTF-8,注意JSP也要是UTF-8。
b.如果是struts2.1.6以下版本,可以自己写fitler(参考spring的实现)或者用spring提供的过滤器。
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
方便学习SSH三大框架的同学们复习和系统的了解。其中知识点详细,也配有详细的例子和讲解。
关于ssh整合的一些技术支持,欢迎下载!
SSH2 主要知识点+SSH2的jar包详解.docx讲解了ssh2整合需要的包,包的讲解,以及ssh2的知识点!
整合使用最新版本的三大框架(即Struts2、Spring4和... 此外,还有:log4j、slf4j、ehcache等知识点。 参考文档:(感谢下边的两位原创作者,另外我在结合两个优点的基础之上,把所有的配置换成了注解的配置方案。) ...
java ssh 框架整合(二)android客户端
本书涵盖 了JavaEE轻量级框架Struts2+Hibemate3+Spring3的实际应用技术, 每个知识点配备实战案例,共32道经典思考 察提供免费教学资源, 包括17个精美教学PPT、1个企业级项目实训文档及项目源码、1180道测试题、时...
s2sh整合总结(struts2.1.8-spring2.5-hibernate3.2) 三大框架
培训的课程目标,课程大纲,课程安排以及各个部分的知识点简介
如题,spring,struts2,hibernate,三大框架学习笔记,基本涵盖所有主要知识点,还有整合的详细说明
此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目特色: 同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。 三、 三大框架最新版本下载:...