- 浏览: 36030 次
最新评论
-
sp42:
douban
一个通用分页查询方法 -
qq330749800:
可以共享一下破解后的JAR包吗,或者源码。
java生成excel的曲线图,大家都用什么免费组件? -
lfrick:
将第22行改为:'<thead><tr cl ...
ext2中grid滚动条问题(已解决) -
xiaolait31:
你好,我用了你的文件,还是没成功,能不能具体说下,修改了什么地 ...
ext2中grid滚动条问题(已解决) -
miss4813:
这是Ext2.2 的一个BUG;
Ext2.3中已经解决这个 ...
ext2中grid滚动条问题(已解决)
花了2个小时终于配置好struts2.0.6+spring2.0.3+hibernane3,为自己庆祝一下,分享一下经验
一、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
- <!---->xml version="1.0" encoding="UTF-8" ?>
- <!---->
- "-//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,然后建立配置文件,我分了三个文件:
主配置文件
- <!---->xml version="1.0" encoding="UTF-8"?>
- <!---->
- "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>
- <!---->
- 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>
- <!---->
- list>
- property>
- bean>
- <bean class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
- <property name="transactionInterceptor" ref="transactionInterceptor"/>
- bean>
- beans>
dao配置文件
- <!---->xml version="1.0" encoding="UTF-8"?>
- <!---->
- "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans default-autowire="byName">
- <bean id="userDao" class="com.baseframe.dao.impl.UserDaoImpl"/>
- beans>
service/manager配置
- <!---->xml version="1.0" encoding="UTF-8"?>
- <!---->
- "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans default-autowire="byName">
- <bean id="userService" class="com.baseframe.service.impl.UserServiceImpl"/>
- beans>
三、web.xml
有一点很重要,struts的filter需要放在最底,不然action接收的中文可能会乱码,不知道是不是这个原因,反正配置了就没有乱码了,加上org.springframework.orm.hibernate3.support.OpenSessionInViewFilter就不用考虑hibernate的lazy问题了:
xml 代码
- <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>
- <filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- <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>
如有错误,欢迎指正
评论
29 楼
tony.lee
2007-06-29
为什么用这个?
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/struts.xml"
/>
</plug-in>
那么strtus2提供的struts2-spring-plugin-2.0.8.jar是干嘛用的呢?
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/struts.xml"
/>
</plug-in>
那么strtus2提供的struts2-spring-plugin-2.0.8.jar是干嘛用的呢?
28 楼
kevin_gzhz
2007-06-29
内容是很好的,我刚开始学这个东西,你能不能把你这个应用的目录结构说一下拉!!
27 楼
cqyaoran
2007-06-21
你的spring事务配置用的是1.0的配置呀,不是2.0的
26 楼
xugq035
2007-06-20
你是否漏了某些包没加进去?
25 楼
越前龙马.sh
2007-06-18
感谢楼主的知识分享!
我也跟着先做了一个struts2的helloworld列子,启动成功,struts2的架子搭好了,准备把spring2和hibernate3整合到其中,以下是我的一些配置文件:
web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts2test</display-name>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>Struts2test.root</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/*.xml</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>
/WEB-INF/classes/conf/log4j.properties
</param-value>
</context-param>
<!-- 著名 Character Encoding filter -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<!--Hibernate Open Session in View Filter-->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!-- 让hibernate open session in view的荣光也照耀xfire -->
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!--Spring ApplicationContext 载入 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<!-- session超时定义,单位为分钟 -->
<session-config>
<session-timeout>1</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml" />
<include file="struts/example.xml"/>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/struts.xml"
/>
</plug-in>
</struts>
struts.properties:
struts.devMode = true
struts.enable.DynamicMethodInvocation = false
#struts.objectFactory = spring 这里有个问题,在struts.xml中已经定义了plugin,在这里还需要再定义这个吗?
以上是我的整合spring的配置文件,但是启动tomcat的时候会报如下错误:
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig).
log4j:WARN Please initialize the log4j system properly.
2007-6-18 7:26:43 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2007-6-18 7:26:43 org.apache.catalina.core.StandardContext start
严重: Context [/struts2test] startup failed due to previous errors
2007-06-18 07:26:43,109 INFO [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/struts2test]] - Shutting down Log4J
2007-6-18 7:26:43 org.apache.catalina.core.StandardContext processTlds
严重: Error reading tld listeners java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.log4j.Category.isEnabledFor(Category.java:757)
at org.apache.commons.logging.impl.Log4JLogger.isTraceEnabled(Log4JLogger.java:327)
at org.apache.catalina.startup.TldConfig.tldScanResourcePaths(TldConfig.java:581)
at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:282)
at org.apache.catalina.core.StandardContext.processTlds(StandardContext.java:4278)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4115)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
2007-6-18 7:26:43 org.apache.coyote.http11.Http11BaseProtocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2007-6-18 7:26:43 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2007-6-18 7:26:43 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/31 config=null
2007-6-18 7:26:43 org.apache.catalina.storeconfig.StoreLoader load
信息: Find registry server-registry.xml at classpath resource
2007-6-18 7:26:43 org.apache.catalina.startup.Catalina start
信息: Server startup in 1422 ms
以下是我加入的jar包:
antlr-2.7.6.jar
asm-2.2.1.jar
cglib-nodep-2.1_3.jar
commons-beanutils-1.7.1-20061106.jar
commons-collections-3.2.jar
commons-dbcp-1.2.1.jar
commons-digester-1.7.jar
commons-lang-2.3.jar
commons-logging-1.1.jar
dom4j-1.6.1.jar
freemarker-2.3.8.jar
hibernate-3.2.0.ga.jar
jstl-1.1.2.jar
jta-1.0.1B.jar
jtds-1.2.jar
log4j-1.2.8.jar
ognl-2.6.11.jar
spring-2.0.jar
struts2-core-2.0.6.jar
struts2-spring-plugin-2.0.6.jar
xwork-2.0.1.jar
tomcat包就不列出来了
起初我看到是log4j的错误时,我就把web.xml中的log4j去掉,但是启动还报这个错误,我有点困惑,为何一加入spring之后就会报这个错误,为何去掉了log4j后还会报log4j的错误。
我也跟着先做了一个struts2的helloworld列子,启动成功,struts2的架子搭好了,准备把spring2和hibernate3整合到其中,以下是我的一些配置文件:
web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts2test</display-name>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>Struts2test.root</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/*.xml</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>
/WEB-INF/classes/conf/log4j.properties
</param-value>
</context-param>
<!-- 著名 Character Encoding filter -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<!--Hibernate Open Session in View Filter-->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!-- 让hibernate open session in view的荣光也照耀xfire -->
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!--Spring ApplicationContext 载入 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<!-- session超时定义,单位为分钟 -->
<session-config>
<session-timeout>1</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml" />
<include file="struts/example.xml"/>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/struts.xml"
/>
</plug-in>
</struts>
struts.properties:
struts.devMode = true
struts.enable.DynamicMethodInvocation = false
#struts.objectFactory = spring 这里有个问题,在struts.xml中已经定义了plugin,在这里还需要再定义这个吗?
以上是我的整合spring的配置文件,但是启动tomcat的时候会报如下错误:
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig).
log4j:WARN Please initialize the log4j system properly.
2007-6-18 7:26:43 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2007-6-18 7:26:43 org.apache.catalina.core.StandardContext start
严重: Context [/struts2test] startup failed due to previous errors
2007-06-18 07:26:43,109 INFO [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/struts2test]] - Shutting down Log4J
2007-6-18 7:26:43 org.apache.catalina.core.StandardContext processTlds
严重: Error reading tld listeners java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.log4j.Category.isEnabledFor(Category.java:757)
at org.apache.commons.logging.impl.Log4JLogger.isTraceEnabled(Log4JLogger.java:327)
at org.apache.catalina.startup.TldConfig.tldScanResourcePaths(TldConfig.java:581)
at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:282)
at org.apache.catalina.core.StandardContext.processTlds(StandardContext.java:4278)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4115)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
2007-6-18 7:26:43 org.apache.coyote.http11.Http11BaseProtocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2007-6-18 7:26:43 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2007-6-18 7:26:43 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/31 config=null
2007-6-18 7:26:43 org.apache.catalina.storeconfig.StoreLoader load
信息: Find registry server-registry.xml at classpath resource
2007-6-18 7:26:43 org.apache.catalina.startup.Catalina start
信息: Server startup in 1422 ms
以下是我加入的jar包:
antlr-2.7.6.jar
asm-2.2.1.jar
cglib-nodep-2.1_3.jar
commons-beanutils-1.7.1-20061106.jar
commons-collections-3.2.jar
commons-dbcp-1.2.1.jar
commons-digester-1.7.jar
commons-lang-2.3.jar
commons-logging-1.1.jar
dom4j-1.6.1.jar
freemarker-2.3.8.jar
hibernate-3.2.0.ga.jar
jstl-1.1.2.jar
jta-1.0.1B.jar
jtds-1.2.jar
log4j-1.2.8.jar
ognl-2.6.11.jar
spring-2.0.jar
struts2-core-2.0.6.jar
struts2-spring-plugin-2.0.6.jar
xwork-2.0.1.jar
tomcat包就不列出来了
起初我看到是log4j的错误时,我就把web.xml中的log4j去掉,但是启动还报这个错误,我有点困惑,为何一加入spring之后就会报这个错误,为何去掉了log4j后还会报log4j的错误。
24 楼
stamen
2007-06-01
请把程序文件上传上来好吗?供学习一下。
23 楼
kongxx
2007-04-25
关注一下,最近正要用
22 楼
xly_971223
2007-04-23
楼主有的例子中 有没有遇到下面这个帖子中的问题啊
http://www.iteye.com/topic/73332
http://www.iteye.com/topic/73332
21 楼
zhutiehan
2007-04-22
看看~~~~
20 楼
xly_971223
2007-04-21
引用
spring的bean应该在action中调用,在LoginAction中应该包含类似如下的代码:
private EmployeeService employeeService;
public void setEmployeeService(EmployeeService employeeService) {
this.employeeService = employeeService;
}
这个EmployeeService才是spring的bean
只要你再struts.properties文件中设定了struts.objectFactory = spring,加入struts2-spring-plugin-2.0.6.jar就可以了
private EmployeeService employeeService;
public void setEmployeeService(EmployeeService employeeService) {
this.employeeService = employeeService;
}
这个EmployeeService才是spring的bean
只要你再struts.properties文件中设定了struts.objectFactory = spring,加入struts2-spring-plugin-2.0.6.jar就可以了
是不是加了struts2-spring-plugin-2.0.6.jar之后action会自动被spring托管了?
还是其他方式,楼主能不能给解释一下?
19 楼
Kaddish
2007-04-19
action交给spring管理后,struts2的validation功能使用出现异常,点击提交表单按钮后还是返回到原先页面!
struts.xml文件中增加:
applicationContext.xml文件如下:
Login.jsp如下:
Login-validation.xml如下:
Login.java代码就不写了,因为程序根本就没进这个Action。每次提交时进行验证,然后返回到原拉的Login界面!如果不把action交给spring管理的话就能正确提交,为什么?
struts.xml文件中增加:
<constant name="objectFactory" value="spring"></constant> [b]<action name="Login" class="login">[/b] <result name="input">/example/Login.jsp</result> <result type="redirect-action">Menu</result> </action>
applicationContext.xml文件如下:
<beans> <bean id="helloWorld" class="example.HelloWorld"></bean> [b] <bean id="logon" class="example.Login"></bean>[/b] <bean id="index" class="example.ExampleSupport"></bean> </beans>
Login.jsp如下:
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Sign On</title> </head> <body> <s:form action="Login"> <s:textfield key="username"/> <s:password key="password" /> <s:submit/> </s:form> </body> </html>
Login-validation.xml如下:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="username"> <field-validator type="requiredstring"> <message key="requiredstring"/> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <message key="requiredstring"/> </field-validator> </field> </validators>
Login.java代码就不写了,因为程序根本就没进这个Action。每次提交时进行验证,然后返回到原拉的Login界面!如果不把action交给spring管理的话就能正确提交,为什么?
18 楼
huangpengxiao
2007-04-19
原来把ACTION交给SPRING 管理 STRUTS 1.2 经常出莫名其妙的问题 WEBWORK 应该没问题
17 楼
sunsy
2007-04-18
用SPRING管理ACTION的话有一点可能要注意,就是SCOPE要设成prototype,如果也使用了struts2的UI,还是用的spring默认的scope,那么在action中提供的对象在同一浏览器中做新境、编辑时会混起来,可能出现编辑也是新增的情况,就因为默认的singleton不会再重新生成一个新的action。
这个当时同事就遇到这个问题,我帮着调了一下,没具体使用了。
这个当时同事就遇到这个问题,我帮着调了一下,没具体使用了。
16 楼
freeport
2007-04-18
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <value>*Service<value> property> <property name="interceptorNames"> <list> <value>transactionInterceptor<value> <!-- </span> </li> <li class="alt"><span><span class="comments"> 此处增加新的Interceptor </span> </span></li> <li class=""><span><span class="comments"> --> list> <property> <bean>
这里为什么是*Service
而不是*DAO呢???
15 楼
raykcn
2007-04-18
Tiwen 写道
这样搭配似乎美中不足。既然你选择了SPRING作为IOC容器,那么你的ACTION也应该被SPRING的IOC管理
为什么要spring控制action呢,你在action中写逻辑代码 ?
14 楼
spiritfrog
2007-04-15
roundlight 写道
非常感谢 xugq035 的介绍资料,我也想搞个 struts + spring + hibernate 相结合的东西出来, 不知道 这位朋友,能不能给我做一下指导啊,再这里 先谢过了啊
如果,有机会的话,像你学习啊
如果,有机会的话,像你学习啊
其实你可以参考appfuse啊,mvc层可以用struts,webwork,tapestry。
13 楼
xly_971223
2007-04-14
引用
xugq035 写道
多谢复贴,这个做法我也试过,不过我觉得这样我就需要对每个action作2次的配置(struts、spring各一次),我还是保留我的配置方法,而且对于struts2来说还会直观一点,即使不用spring,struts2的配置文件也不需要作什么修改。
如果将struts2的action交给spring的ioc容器管理,那这个action实例能够获得springioc容器的一切优点,包括使用spring的aop系统,而且我记得在webwork2里,把action交给spring管理性能上更好一点,但struts2.0就不清楚了,毕竟人家用的是xwork2.0
个人认为让spring管理action更好一些 也可以更灵活的处理客户端请求
12 楼
ahuaxuan
2007-04-03
xugq035 写道
多谢复贴,这个做法我也试过,不过我觉得这样我就需要对每个action作2次的配置(struts、spring各一次),我还是保留我的配置方法,而且对于struts2来说还会直观一点,即使不用spring,struts2的配置文件也不需要作什么修改。
如果将struts2的action交给spring的ioc容器管理,那这个action实例能够获得springioc容器的一切优点,包括使用spring的aop系统,而且我记得在webwork2里,把action交给spring管理性能上更好一点,但struts2.0就不清楚了,毕竟人家用的是xwork2.0
Tiwen 写道
Spring配置文件添加
<bean id="LoginAction" class="com.baseframe.action.LoginAction"/> <bean id="LogoutAction" class="com.baseframe.action.LogoutAction"/>
难道spring2.0里默认的bean实例不是单例的吗
11 楼
xugq035
2007-04-03
多谢复贴,这个做法我也试过,不过我觉得这样我就需要对每个action作2次的配置(struts、spring各一次),我还是保留我的配置方法,而且对于struts2来说还会直观一点,即使不用spring,struts2的配置文件也不需要作什么修改。
10 楼
Tiwen
2007-04-02
这样搭配似乎美中不足。既然你选择了SPRING作为IOC容器,那么你的ACTION也应该被SPRING的IOC管理
更正
WEB.XML添加
Spring配置文件添加
最后struts.xml配置文件改下
这样容器管理就交给SPRING好了。
更正
WEB.XML添加
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
Spring配置文件添加
<bean id="LoginAction" class="com.baseframe.action.LoginAction"/> <bean id="LogoutAction" class="com.baseframe.action.LogoutAction"/>
最后struts.xml配置文件改下
<action name="login" class="LoginAction"> <result name="input">login.jspresult> <result name="success">main.jspresult> <result name="error">login.jspresult> action> <action name="logout" class="LogoutAction"> <result name="success">login.jspresult> action>
这样容器管理就交给SPRING好了。
相关推荐
### Struts2.0.6配置 Struts2作为MVC框架的一部分,主要负责处理Web层的请求与响应。其核心配置文件`struts.xml`和`struts.properties`定义了框架的行为与动作映射。 #### `struts.properties`关键配置解析: - *...
这是一个基于经典的Java Web技术栈构建的图书管理系统,利用了Tomcat5.5作为应用服务器,Struts2作为MVC框架,Spring2.0.6负责依赖注入和事务管理,而Hibernate3则作为对象关系映射(ORM)工具,用于数据库操作。...
Struts1.2.9、Spring2.0.6和Hibernate3.0.5是Java Web开发中的三个重要框架,它们的整合应用是早期企业级应用程序的常见实践。这个例子展示了如何将这三个框架集成在一起,以实现高效、灵活的MVC(模型-视图-控制器...
现在就将笔者使用Myeclipse工具应用struts2 + spring2 + hibernate3 实现CRUD操作的步骤一一纪录下来,为初学者少走弯路略尽绵薄之力!在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过...
最流行技术Struts2.1 +Spring 2.5.1+ibatis2.3整合开发而成,这与我以前发布的版本中最大特色是整合了Spring2.5.1中的注解功能和半自动化工具ibatis技术,这是本示例的两大特色,简化了配置文件的烦锁,希望能给更多喜欢...
2. **启用Struts2-Spring插件**:在Struts2的配置文件(struts.xml)中启用Struts2-Spring插件,以便让Struts2知道如何与Spring容器交互。 3. **创建自定义拦截器**:为了更好地利用Spring的功能,可能还需要创建...
本文将详细介绍如何配置新版SSH+DWR框架,即Struts2.1.8、Spring3.0和Hibernate3.3.2与Direct Web Remoting (DWR) 2.0.6的集成。这个配置示例是基于目前最新的技术栈,旨在提供一个高效、稳定的开发环境。 首先,...
现在就将笔者使用Myeclipse工具应用struts2 + spring2 + hibernate3 实现CRUD操作的步骤一一纪录下来,为初学者少走弯路略尽绵薄之力!在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过...
根据提供的文件信息,本文将详细解析“Struts2 + Spring2 + Hibernate3”技术栈的集成与应用。本文主要从项目准备、环境搭建、公共类的设计等方面进行深入讲解。 ### 一、项目背景及意义 Struts2、Spring2 和 ...
### 最新版本Struts2.1.8+Spring3.0+Hibernate3.3.2+DWR2.0.6配置详解 在本篇内容中,我们将详细探讨如何搭建一个基于Struts2.1.8、Spring3.0、Hibernate3.3.2以及DWR2.0.6的Web应用程序框架。这一组合被称为SSH+...
Spring2.0.6的引入则提供了对Struts2的集成支持,可以通过Spring的Action代理来管理Action实例,实现依赖注入。Hibernate3.1则负责数据持久化,通过配置映射文件(XML或注解)将Java对象与数据库表关联。 在整合的...
3. **配置pom.xml**:在新创建的项目中,编辑pom.xml文件,添加Struts2、Spring和iBatis的依赖。例如: ```xml <!-- Struts2 --> <groupId>org.apache.struts <artifactId>struts2-core <version>2.5.17 ...
使用的框架版本是Struts2.0.6、Spring2.5和Hibernate3.2,这些都是当时比较稳定的版本。JDK6.0是Java开发所需的运行环境,MySQL5.0是关系型数据库管理系统。 在开始整合前,我们需要准备数据库。在这个简单的注册...
在本文中,我们将深入探讨如何在Myeclipse环境中配置一个基于Struts2.0.11、Hibernate和Spring的Web项目。这个配置过程分为几个关键步骤,确保所有必要的库和框架能够协同工作。 首先,我们需要在MyEclipse中创建一...
开发环境:本文使用的开发环境是MyEclipse5.0+Eclipse3.2+JDK5.0+Tomcat5.5+Struts2.0.6+Spring2.0.6+Hibernate3.1。 示例:本文的示例是一个图书管理系统,提供了基本的增加、删除、修改、查询等功能。示例使用了...
总之,Spring 3.0.5、Mybatis 3.0.5和Struts2.0.6的整合是一个复杂但重要的过程,它涉及到多个层次的配置和代码编写。理解每个框架的核心功能和它们之间的协作机制,是成功完成整合的关键。通过这样的整合,我们可以...
在与Struts2和JPA的集成中,Spring主要负责管理Bean的生命周期、配置以及处理事务,它提供了无缝的集成解决方案,使得整个应用架构更加清晰、模块化。 #### 综合运用案例分析 在实际开发中,结合Struts2、AJAX、...