一、配置Struts2
跟webwork配置基本一致,主要是struts2.properties和struts.xml 2个配置文件,我的struts2.properties如下配置:
struts2.properties
struts.tag.altSyntax = true
struts.devMode = true
### These can be used to set the default HTTP and HTTPS ports
struts.url.http.port = 80
#webwork.url.https.port = 443
### This can be used to set your locale and encoding scheme
struts.custom.i18n.resources=ApplicationResources
struts.locale=zh_CN
struts.i18n.encoding=utf-8
# uses javax.servlet.context.tempdir by default
struts.multipart.parser=com.opensymphony.webwork.dispatcher.multipart.PellMultiPartRequest
#struts.multipart.saveDir=tmp
struts.multipart.saveDir=/tmp
struts.multipart.maxSize=512000000
struts.configuration.xml.reload=true
struts.objectFactory = spring
struts.xml 就是配置action了,由于设定了struts.objectFactory = spring,因此struts2会自动将action转为spring的bean,struts.xml可以直接配置我们的action路径,在action中我们只需要设置某个service文件的set方法即可调用事务管理bean。
struts.xml
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><!--sp-->xml version="1.0" encoding="UTF-8" ?>
<!--CTYPE struts PUBLIC </sp-->
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml" />
<package name="default" extends="struts-default">
<default-interceptor-ref name="completeStack" />
<global-results>
<result name="login" type="redirect">login!default.actionresult>
<result name="unauthorized">unauthorized.jspresult>
global-results>
<action name="login" class="com.baseframe.action.LoginAction">
<result name="input">login.jspresult>
<result name="success">main.jspresult>
<result name="error">login.jspresult>
action>
<action name="logout" class="com.baseframe.action.LogoutAction">
<result name="success">login.jspresult>
action>
package>
struts>
二、配置Spring2
添加dist下的3个spring包,因为不知道哪些包是必须的,把lib里的包都加了,去除jakarta-commons/commons-attributes-compiler.jar、j2ee/servlet-api.jar、j2ee/jsp-api.jar,然后建立配置文件,我分了三个文件:
主配置文件
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><!--sp-->xml version="1.0" encoding="UTF-8"?>
<!--CTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" </sp-->
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
...
bean>
<bean id="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
...
bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateProperties">
<ref bean="hibernateProperties"/>
property>
<property name="mappingResources">
<list>
<value>com/baseframe/model/AppUser.hbm.xmlvalue>
<!-- </span> </li> <li class=""><span><span class="comments"> 此处增加hbm </span> </span></li> <li class="alt"><span><span class="comments"> -->
list>
property>
bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
bean>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIREDprop>
<prop key="amount*">PROPAGATION_REQUIRED,readOnlyprop>
<prop key="find*">PROPAGATION_REQUIRED,readOnlyprop>
props>
property>
bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>*Servicevalue>
property>
<property name="interceptorNames">
<list>
<value>transactionInterceptorvalue>
<!-- </span> </li> <li class="alt"><span><span class="comments"> 此处增加新的Interceptor </span> </span></li> <li class=""><span><span class="comments"> -->
list>
property>
bean>
<bean class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
<property name="transactionInterceptor" ref="transactionInterceptor"/>
bean>
beans>
dao配置文件
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><!--sp-->xml version="1.0" encoding="UTF-8"?>
<!--CTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" </sp-->
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean id="userDao" class="com.baseframe.dao.impl.UserDaoImpl"/>
beans>
service/manager配置
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><!--sp-->xml version="1.0" encoding="UTF-8"?>
<!--CTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" </sp-->
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean id="userService" class="com.baseframe.service.impl.UserServiceImpl"/>
beans>
有一点很重要,struts的filter需要放在最底,不然action接收的中文可能会乱码,不知道是不是这个原因,反正配置了就没有乱码了,加上org.springframework.orm.hibernate3.support.OpenSessionInViewFilter就不用考虑hibernate的lazy问题了:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->filter>
<filter-name>encodingFilterfilter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
<init-param>
<param-name>encodingparam-name>
<param-value>UTF-8param-value>
init-param>
filter>
<filter-mapping>
<filter-name>encodingFilterfilter-name>
<url-pattern>/*url-pattern>
filter-mapping>
hibernateFilter
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
hibernateFilter
/*
<filter>
extremetable的filter
filter>
<filter-mapping>
extremetable的filter mapping
filter-mapping>
<filter>
<filter-name>struts2filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcherfilter-class>
filter>
<filter-mapping>
<filter-name>struts2filter-name>
<url-pattern>/*url-pattern>
filter-mapping>
分享到:
相关推荐
在"Struts2 Spring Jpa 配置测试"项目中,开发者可能进行了以下步骤来整合这三个框架: 1. **Struts2配置**:首先,需要在项目的`web.xml`文件中配置Struts2的核心过滤器`org.apache.struts2.dispatcher.ng.filter....
在IT领域,特别是Java开发框架下,整合Struts2、Spring和Hibernate是常见的技术栈选择,旨在构建功能丰富且性能高效的企业级应用。基于给定的文件信息,我们可以深入探讨如何配置并集成这三个强大的框架。 ### ...
对于Struts2和Spring的配置,我们需要在`struts.xml`和`spring-context.xml`文件中进行相应的设置,例如定义Action类、配置Spring Bean以及指定Struts2与Spring的整合方式。同时,确保web.xml文件中配置了...
标题 "struts2 spring3 mybatis3整合简单例子" 涉及到的是Java Web开发中的三大主流框架——Struts2、Spring3和MyBatis3的整合应用。这是一个常见的企业级开发组合,用于构建高效、灵活的后端服务。 Struts2是一个...
4. `2struts-spring.txt`:这个文件可能详细阐述了Struts2和Spring3的整合,包括如何使用Spring管理Struts2的Action,如何配置Struts2-Spring插件,以及如何在Action中注入Spring管理的Bean。 5. `1struts.txt`:这...
以下是基于标题“struts+spring+hibernate3+webligic812环境配置备忘录”的详细知识点解析: ### 一、环境搭建与配置 #### 1. WebLogic Server安装与配置 - **安装过程**:首先,下载WebLogic Server 8.1.2版本的...
这个光盘源码上部分可能包含了项目初始化配置、Struts2的Action配置、Spring的bean定义以及Hibernate的实体类和映射文件。开发者可以通过学习这些代码,了解如何配置和集成这三个框架,以及如何在实际项目中编写业务...
Struts2、Spring3和Hibernate4是Java Web开发中三个非常重要的开源框架,它们分别负责MVC模式中的表现层、业务层和数据访问层。这三个框架的整合,通常被称为SSH整合,可以提供一个高效、灵活且功能强大的企业级应用...
接着,配置Struts2、Spring和MyBatis的初始化参数,确保它们能正确加载和初始化。最后,编写Action、Service、DAO以及EasyUI对应的JSP页面,完成业务逻辑和界面展示。 总的来说,"struts2+spring+mybatis+easyui"的...
在IT行业中,S2SH(Struts2、Spring4、Hibernate4)是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用。本文将深入探讨这三个组件以及它们的整合过程。 首先,Struts2是Apache软件基金会的一个...
SSM整合过程中,开发者通常会创建一个Spring配置文件来配置Struts2、Spring自身以及Mybatis的相关设置。这包括Spring管理的Bean定义、DataSource配置、SqlSessionFactory配置以及Struts2的Filter配置。同时,每个...
在Struts2+Spring+MyBatis的架构中,MyBatis负责与数据库交互,通过XML或注解方式配置SQL语句,使得数据库操作更加灵活且易于维护。 **整合过程** 1. **配置Spring**:创建Spring配置文件,定义Bean,包括Action、...
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
Struts2-Spring-Plugin-2.3.4.jar 是一个专门为 Struts 2 框架和 Spring 框架整合而设计的插件,主要用于处理 Struts 2 和 Spring 之间的集成问题。在Java Web开发中,这两个框架经常一起使用,Spring 提供了依赖...
Struts2、Spring和Hibernate是Java开发中三大重要的开源框架,它们各自负责Web应用的不同层面。Struts2作为MVC框架处理HTTP请求和视图展示,Spring提供了依赖注入(DI)和面向切面编程(AOP),以及服务层管理,而...
【Struts2、Spring2和Hibernate3整合配置详解】 在Java Web开发中,Struts2、Spring2和Hibernate3的整合应用是常见的技术栈,它实现了MVC(Model-View-Controller)架构,提供了强大的业务逻辑处理、持久化数据管理...
详细讲解了S2SH框架技术的基本知识和使用方法,从Eclipse开发平台、JSP、Servlet等基础知识讲起,由浅入深,重点介绍了当前流行的三个轻量级开源框架:Struts2、Spring和Hibemate.
3. **配置Struts2**:在struts.xml中,不再直接实例化Action类,而是使用Spring提供的`<action>`标签,通过`class`属性指定Action类的全限定名,同时添加`spring`插件的配置,如`namespace="/struts"`和`default-...