`
yufei
  • 浏览: 94174 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

SSH2: Struts2 + Spring + Hibernate 的登录

阅读更多
使用分层结构,包括 dao,service,control,web层

Struts2 集成 Spring 需要以下几个步骤

1 加入struts2-spring-plugin-2.0.9.jar到项目中(web项目就是丢到/WEB-INF/lib中)

2 Web.xml文件里加入以下listener
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--默认加载/WEB-INF 目录下的applicationContext.xml -->

如果需要其它的spring配置文件可以在web.xml中加入以下配置
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>
<!--param-value 中间的多个配置文件可以使用 , 隔开-->


3 在/WEB-INF 目录下新建applicationContext.xml,并在其中配置Struts2的action及其它需要的bean

4 在struts.xml中将 <action 元素中 class="" 的属性改为spring配置文件中的id
         <!-- spring 配置文件中配置 action -->
 <bean id="loginAction" class="login.LoginAction"
		scope="prototype">
		<property name="userService" ref="userService" />
	</bean>


         <!-- struts 配置文件中配置 action 注意class属性不再是类带路径全名了 -->
 <action name="Login" class="loginAction">
			<result name="success">/login/success.jsp</result>
			<result name="error">/login/error.jsp</result>
	</action>


-
-
-

Spring 集成 Hibernate 就不累述了,网上到处都有

-
-

附件里有原代码,导入eclipse(需要myeclipse插件),修改数据源,就能运行了

数据源在src目录下dataSource.properties里,我将数据源配置在外部properties

文件里,spring的配置文件动态载入其内容,如果使用的不是mysql,请注意修改hibernate方言
<prop key="hibernate.dialect">
    org.hibernate.dialect.MySQLDialect
</prop>


说明:项目内没有所需要的包(struts2,spring2,hibernate3),导入项目以后需要自己

导入相应的三方包,spring使用的是2.0

-

struts2 好像支持不了spring2.0 基于 XML Schmea 的配置,基于这个配置事务应用程序就出错,如果有人知道怎么在struts2集成spring2中使用spring2的xml Schmea的配置,请告知
  • SSH2.rar (18.5 KB)
  • 描述: Struts2 + Spring + Hibernate 的登录
  • 下载次数: 6992
分享到:
评论
15 楼 yufei 2007-10-26  
楼上的,导入struts2,spring2,和hibernate3的包了吗?
dataSource.properties文件里的数据库配置信息了吗?
不是mysql,修改hibernate配置文件的数据库方言了吗?
14 楼 asdfasdf 2007-10-26  
lz的例子有问题


呵呵 不能使用
13 楼 oracle123 2007-10-24  
好东西啊,朋友谢谢
12 楼 锁上门睡觉 2007-10-23  
我下载文件,import到eclipse。运行test.java文件,既然有这样的错误:
Exception in thread "main" org.springframework.beans.factory.BeanInitializationException:
Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/classes/dataSource.properties] cannot be opened because it does not exist
java.io.FileNotFoundException: class path resource [WEB-INF/classes/dataSource.properties] cannot be opened because it does not exist

at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:137)
at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:183)
at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:162)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:69)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:373)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:295)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:87)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:72)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:63)
at dao.Test.main(Test.java:12)

我查看了/WEB-INF/classes/dataSource.properties 这个文件是存在的
11 楼 allenny 2007-10-22  
好像用Spring的aop方法拦截和Struts2的ActionContext有冲突,两者无法同时使用,不知到楼主有没有碰到过这类问题。
10 楼 chunchong 2007-10-22  
运行代码咋的不行啊
9 楼 techno_it 2007-10-22  
我也没有遇到问题。
8 楼 pdw2009 2007-10-22  
spring2也支持dtd
7 楼 jiangzy 2007-10-19  
少了包或多了很包,请检查
6 楼 yufei 2007-10-17  
引用
是否Web.xml配置有误,仔细检查了吗?

web.xml只有下面那点内容....
而且只要把spring配置文件里事务的配置方式改为1.x的配置方式,而不使用XML Schmea配置,就不会有问题
<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>

	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
5 楼 kyo100900 2007-10-17  
yufei 写道
遇见鬼了,我只要一使用XML Schmea配置,就会出错
报下面的错误.....
2007-10-16 21:06:54 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2007-10-16 21:06:54 org.apache.catalina.core.StandardContext start
严重: Context [/ssh2] startup failed due to previous errors



是否Web.xml配置有误,仔细检查了吗?
4 楼 alex8946 2007-10-16  
不错!
3 楼 yufei 2007-10-16  
遇见鬼了,我只要一使用XML Schmea配置,就会出错
报下面的错误.....
2007-10-16 21:06:54 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2007-10-16 21:06:54 org.apache.catalina.core.StandardContext start
严重: Context [/ssh2] startup failed due to previous errors
2 楼 fuliang 2007-10-15  
kyo100900 写道
不错,可以继续重构。不过你所说的:“struts2 好像支持不了spring2.0 基于 XML Schmea 的配置,基于这个配置事务应用程序就出错”。我没有太明白

我使用的是XML Schmea 的配置没有出现问题.
<aop:config>
   <aop:pointcut id="serviceOperation" expression="execution(* edu.jlu.fuliang.Service.impl.*ServiceImpl.*(..))"/>
   <aop:advisor pointcut-ref="serviceOperation" advice-ref="txAdvice"/>
</aop:config>	
<tx:advice id="txAdvice">
	<tx:attributes>
	   <tx:method name="get*" read-only="true"/>
	   <tx:method name="*"/>
	</tx:attributes>
</tx:advice>
	
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
	<property name="sessionFactory">
		<ref bean="sessionFactory"/>
	</property>
</bean>
1 楼 kyo100900 2007-10-15  
不错,可以继续重构。不过你所说的:“struts2 好像支持不了spring2.0 基于 XML Schmea 的配置,基于这个配置事务应用程序就出错”。我没有太明白

相关推荐

Global site tag (gtag.js) - Google Analytics