`

spring+hibernate+struts 自己总结出的方法。

阅读更多

其实很简单,只需要两步:

1.在Web.xml文件中加入下面代码,从而加载spring的配置文件。

   <context-param>    
        <param-name>contextConfigLocation</param-name>    
        <param-value>/WEB-INF/applicationContext.xml</param-value>    
    </context-param>    
    <servlet>    
        <servlet-name>context</servlet-name>    
        <servlet-class>    
            org.springframework.web.context.ContextLoaderServlet    
        </servlet-class>    
        <load-on-startup>1</load-on-startup>    
     </servlet>  

 

2.为了使Action得到Bean,写一个BaseAction类,以得到想要的Bean。

 

BaseAction类

/**
 * 
 */
package com.leon.struts.action;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.struts.ActionSupport;

import com.leon.service.JobService;
import com.leon.service.NewsService;


/**
 * @author Leon Sui
 *
 * Date: Mar 4, 2009
 *
 */
public class BaseAction extends ActionSupport {
	protected Object getBean( String name ) {
		WebApplicationContext ctx = getWebApplicationContext();
		return ctx.getBean( name );
	}
	//得到Service bean
	protected JobService getJobService() {
		return (JobService)getBean("jobService");
	}
}

 其他的就是正常的注册bean,正常写struts-config配置文件。例如;

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans >

  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      path="/job"
      scope="request"
      type="com.leon.struts.action.JobAction"
      validate="false">
      <forward name="Job" path="/job.jsp" />
    </action>

  </action-mappings>

  <message-resources parameter="com.leon.struts.ApplicationResources" />

</struts-config>

 

<bean id="mySessionFactory" 
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="mappingResources">
			<list>
				<value>com/leon/model/news.hbm.xml</value>
				<value>com/leon/model/job.hbm.xml</value>
				<value>com/leon/model/cases.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect"> 
					org.hibernate.dialect.MySQLDialect </prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="current_session_context_class">thread</prop>
				<prop key="hibernate.cache.provider_class"> 
					org.hibernate.cache.EhCacheProvider </prop>
				<prop key="connection.pool_size">10</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
		<property name="dataSource">
			<ref bean="dataSource"/>
		</property>
	</bean>
	<!--Dao-->
	<bean id="newsDao" class="com.leon.dao.impl.NewsDaoImpl">
		<property name="sessionFactory">
			<ref bean="mySessionFactory"></ref>
		</property>
	</bean>
	<bean id="jobService" class="com.leon.service.impl.JobServiceImpl">
		<property name="jobDao">
			<ref bean="jobDao"></ref>
		</property>
	</bean>

 

Action类:红色的就是得到bean

/** 
 * MyEclipse Struts
 * Creation date: 03-03-2009
 * 
 * XDoclet definition:
 * @struts.action path="/job" name="jobForm" scope="request"
 * @struts.action-forward name="Job" path="/job.jsp"
 */
public class JobAction extends BaseAction {
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		ArrayList list = (ArrayList) getJobService().loadJobs();
		HttpSession session = request.getSession(true);
		session.setAttribute("job", list);
		return mapping.findForward("Job");
	}
}

  

一切正常使用。这是我用自己遇到的问题,加上8个小时的上网查找解决方法,最后总结出来的。希望大家能用得到!

2
1
分享到:
评论
2 楼 airdream 2009-03-12  
toeo 写道

# public class BaseAction extends ActionSupport {&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp; protected Object getBean( String name ) {&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebApplicationContext ctx = getWebApplicationContext();&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ctx.getBean( name );&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp; //得到Service bean&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp; protected JobService getJobService() {&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (JobService)getBean("jobService");&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; # }&nbsp; 不是这么注入的吧??用srping生成sturts2的bean.这样方便管理.你这个都代码写的..使用get,set方法.

你说的是用spring代理struts的action吧,在spring的配置文件里写action bean然后注入service bean
1 楼 toeo 2009-03-05  
# public class BaseAction extends ActionSupport { 
#     protected Object getBean( String name ) { 
#         WebApplicationContext ctx = getWebApplicationContext(); 
#         return ctx.getBean( name ); 
#     } 
#     //得到Service bean 
#     protected JobService getJobService() { 
#         return (JobService)getBean("jobService"); 
#     } 
# } 

不是这么注入的吧??
用srping生成sturts2的bean.这样方便管理.你这个都代码写的..使用get,set方法.

相关推荐

    Spring4.0+Hibernate4.0+Struts2.3整合案例

    Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    一个spring+struts+hibernate的例子

    一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流

    spring+struts2+hibernate+mybatis

    一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    Struts2+Spring+Hibernate 中的Action单元测试环境搭建 在软件开发中,单元测试是一种非常重要的测试方法,可以帮助我们确保代码的可靠性和稳定性。在 Struts2+Spring+Hibernate 框架中,对 Action 的单元测试环境...

    DWR+Struts+spring+hibernate的订货系统

    DWR+Struts+spring+hibernate的订货系统,自己添加的dwr功能

    简单struts+spring+hibernate搭建,配置

    简单struts+spring+hibernate搭建,配置,适合初学者

    基于J2EE农业网 struts 2 +spring+ hibernate

    农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts ...

    图书管理系统spring+struts+hibernate

    《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...

    struts+spring+hibernate三大框架整合

    SSH三大框架,即Struts、Spring和Hibernate,是Java Web开发中的常用技术组合,它们各自负责不同的职责:Struts作为MVC模式中的Controller层,处理用户请求并转发到相应的业务逻辑;Spring则作为核心容器,负责依赖...

    Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)

    Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解...

    Spring+Hibernate+Struts资源共享系统

    在“Spring+Hibernate+Struts”系统中,Hibernate 负责处理数据库操作,将Java对象映射到数据库表,从而避免了繁琐的SQL代码编写。通过 Hibernate,开发者可以轻松地进行数据的增删改查操作,同时支持事务管理和缓存...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    通过这种方式,开发人员可以利用Struts2的控制层、Spring的服务层管理和依赖注入,以及Hibernate或Ibatis的数据访问能力,构建出高效且可扩展的Web应用。这些整合示例可以帮助初学者快速理解各个组件的交互方式,...

    struts2+spring+hibernate 配置文件

    struts2+spring+hibernate 配置文件struts2+spring+hibernate 配置文件

    Struts1+Spring+Hibernate整合注册登录(BLing原创).part1.rar

    Struts1+Spring+Hibernate整合注册登录(BLing原创).part1.rar 有二个文件

    SSH整合jar包-spring5.0+hibernate5.1+struts2.5

    SSH整合是指将Spring、Hibernate和Struts这三大Java开源框架集成在一起,用于构建高效、灵活的企业级Web应用程序。这三个框架分别负责不同的职责:Spring作为应用的基石,提供依赖注入(DI)和面向切面编程(AOP),...

    基于struts+spring+hibernate+oracle的移动ssh项目源码

    基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh...

    spring+hibernate+struts

    标题 "spring+hibernate+struts" 指涉的是一个经典的Java Web开发框架组合,也被称为SSH(Spring、Struts和Hibernate)三位一体。这个组合在2000年代中期到后期非常流行,用于构建企业级应用。下面将详细阐述这三个...

    spring+hibernate+struts教程

    spring+hibernate+struts教程

    struts2+spring+hibernate框架购物车

    Struts2、Spring和Hibernate是Java企业级应用开发中非常流行的三大开源框架,它们各司其职,共同构建了一个强大的MVC(Model-View-Controller)架构。在"struts2+spring+hibernate框架购物车"项目中,这三个框架协同...

    基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server)

    基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server) 基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server) 基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server) 基于...

Global site tag (gtag.js) - Google Analytics