- 浏览: 175962 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
yinvent:
谢谢,终于找到一个可以用的例子!
struts2学习之一简单范例 -
锅巴49:
学习了,不错.
使用 Spring 2.5 注释驱动的 IoC 功能 -
fooky:
你好,今天在配置spring secutiry3,想让系统先从 ...
spring security 配置文件小结(逐步深化到url级别) -
lj508:
你好啊 请教你个问题
我用那个纯jsp上传时
怎么运行时根本没 ...
Sturt2学习之十二---文件上传 -
641216927:
我还是一个struts2新手。
有个问题请教一下:
同时在t ...
struts2学习之一简单范例
一、原理:
在Action中取得BeanFactory对象,然后通过BeanFactory获取业务逻辑对象
1、spring和struts依赖库配置
* 配置struts
--拷贝struts类库和jstl类库
--修改web.xml文件来配置ActionServlet
--提供struts-config.xml文件
--提供国际化资源文件MessageResources.properties
* 配置spring
--拷贝spring类库
--提供spring配置文件
2、在struts的Action中调用如下代码取得BeanFactory
BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
//这个方法的前提是在web.xml中加入了如下的配置
/*<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>*/
//这个配置的作用是当spring启动时,最先调用listener,那么就会在容器中加入BeanFactory实例对象。以后需要使用时通过以下语句去拿就可以了。这样就不会重复生成BeanFactory 对象了
3、通过BeanFactory取得业务对象,调用业务逻辑方法
二、具体实例程序
1、applicationcontext-bean.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <bean id="userManager" class="com.bjsxt.usermgr.manager.UserManagerImpl"/> </beans>
2、web.xml加入部分
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
3、loginAction
package com.bjsxt.usermgr.actions; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.bjsxt.usermgr.forms.LoginActionForm; import com.bjsxt.usermgr.manager.UserManager; import com.bjsxt.usermgr.manager.UserManagerImpl; public class LoginAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoginActionForm laf = (LoginActionForm)form; //这里第一种userManager 的生成方式是用new的方式,没有用依赖注入 //UserManager userManager = new UserManagerImpl(); //userManager.login(laf.getUsername(), laf.getPassword()); //这里第二种userManager的生成方式是用的spring的工厂的方式,虽然用了依赖注入,但是这种方式也有他的缺陷 //打个比方如果需要在多个类中应用,那么需要生成多个BeanFactory的对象,所以有了下面的方法 //BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext-beans.xml"); //UserManager userManager = (UserManager)factory.getBean("userManager"); //userManager.login(laf.getUsername(), laf.getPassword()); //这个方法的前提是在web.xml中加入了如下的配置 /*<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>*/ //这个配置的作用是当spring启动时,最先调用listener,那么就会在容器中加入BeanFactory实例对象。以后需要使用时通过以下语句去拿就可以了 BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); //以下这句其实和上面那一句是一致的,只不过它让返回值更加明确了,ApplicationContext其实就是BeanFactory的一个子接口(功能更多) //ApplicationContext pc = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); UserManager userManager = (UserManager)factory.getBean("userManager"); userManager.login(laf.getUsername(), laf.getPassword()); return mapping.findForward("success"); } }
4、struts配置
从以下配置文件的 <action path="/login"
type="com.bjsxt.usermgr.actions.LoginAction"
name="loginForm"
scope="request" >
<forward name="success" path="/success.jsp"/>
</action>
可以看出,在这个方案中与下一个方案的区别,action还是通过struts实例化取得的,不是通过spring的IOC来创建action的,在这个方案中只是UserManagerImpl业务实现实现了IOC
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="loginForm" type="com.bjsxt.usermgr.forms.LoginActionForm"/> </form-beans> <action-mappings> <action path="/logininput" forward="/login.jsp" ></action> <action path="/login" type="com.bjsxt.usermgr.actions.LoginAction" name="loginForm" scope="request" > <forward name="success" path="/success.jsp"/> </action> </action-mappings> <message-resources parameter="MessageResources" /> </struts-config>
5、整体见附件
发表评论
-
使用 Spring 2.5 注释驱动的 IoC 功能
2010-08-04 11:04 1270级别: 初级 转自http://www.ibm.com/dev ... -
使用 Spring 2.5 基于注解驱动的 Spring MVC
2010-08-04 11:00 1131转自http://www.ibm.com/developerw ... -
spring security 学习 续一
2009-08-21 15:08 5105六、为了使用MD5对密码加密,我们需要修改一下配置文件。 ... -
spring security 配置文件小结(逐步深化到url级别)
2009-08-20 17:39 9188一 、方式一:用户名密码都在配置文件中。 <?x ... -
spring2.5+strut2.0+hibernate3.3集成
2009-08-15 16:15 1267一、准备jar包,见附件。 二、分布集成 1、先集成spr ... -
ssh或S2sh中因延迟加载出现问题解决方案
2009-08-15 15:29 1061解决方案:在web.xml中加入以下代码 使用spr ... -
S2SH或ssh中乱码问题解决方法一
2009-08-15 15:23 1133在web.xml中添加以下配置 <filter> ... -
Spring+JDBC集成学习笔记(可参考ppt附件38-46页)
2009-08-15 14:25 1932使用Spring+JDBC集成步骤如下 ... -
spring小结之配置二级缓存!
2009-08-15 13:36 1844一、spring二级缓存主要分为三步,可以参考附件程序理解: ... -
Spring和Struts和Hibernate集成
2009-03-31 11:53 8001、见附件 由于附件最大不超过10M 所以部分lib单独打包了 ... -
spring与struts集成方案二
2009-03-31 11:31 1096spring+struts的集成(第二种集成方案)一、原理 将 ... -
Spring学习笔记之九--声明式事务
2009-03-30 10:02 1024一、事务的传播特性: 前六个是标准的,在.net中也有,后面 ... -
spring学习之八--Hibernate编程式事务
2009-03-30 00:06 1588采用编程式事务 程序示例: 1、以前单个事物的控制 1)Hib ... -
spring学习之七“AOP使用spring静态配置文件(CGLIB)”
2009-03-29 16:21 2884一、spring对AOP的支持(在JDK动态代理和CGLIB之 ... -
spring学习之六“AOP使用spring静态配置文件的实现”
2009-03-29 15:58 1146一、spring(采用配置文件的方式)对AOP实现 1、sp ... -
spring学习之五“AOP概念及使用Annotation的实现”
2009-03-27 15:14 1060一、静态代理 参见代码 二、动态代理 参 ... -
spring学习之四“自动装配”
2009-03-27 14:46 936一。根据名字自动装配: 前提一、设置default-auto ... -
Spring学习笔记之三“scope” --bean范围
2009-03-27 14:37 1531三、spring Bean的作用域: scope可以取值: ... -
Spring学习笔记之二“属性注入”
2009-03-27 14:15 980参见附件代码理解下文(附件中有更加详细的注解)一、普通的属性注 ... -
Spring学习笔记之一“why spring”
2009-03-27 09:54 922一、spring概述 2、在使用spring前 ...
相关推荐
Maven搭建spring_struts2_Hibernate项目源码,包括数据库,博客地址:http://blog.csdn.net/fengshizty/article/details/43794911
【Spring_Struts_Ibatis_Mysql Demo】是一个典型的Java Web应用程序示例,它整合了四个关键的技术框架:Spring、Struts、iBatis和MySQL数据库。这个项目旨在展示如何在实际开发中有效地集成这些组件,创建一个功能...
标题中的"spring_struts2_hibernate_mysql集成"指的是在Java Web开发中,将Spring、Struts2、Hibernate这三大主流框架与MySQL数据库进行整合。这是一个常见的企业级应用开发模式,用于构建高效、可维护的Web应用程序...
标题“Spring_Struts__Hibernate_MessgaeBoard”指的是一个整合了Spring、Struts和Hibernate的Web应用程序示例,主要用于演示如何在Java环境中构建一个基于SSH(Spring、Struts、Hibernate)的留言板系统。...
这个名为"spring_struts2_myBatis.zip"的压缩包提供了一个整合这三个框架的小型应用示例,为开发者提供了学习和实践的机会。 首先,Spring框架作为Java企业级应用的核心组件,它以依赖注入(DI)和面向切面编程...
在"Spring+Struts的集成(第一种方案)"中,我们通常指的是基于Servlet Filter的集成方式,这种方案将Spring作为应用的核心容器,而Struts作为MVC框架处理HTTP请求。下面我们将详细介绍这个集成方案的具体步骤和关键...
【轻量级Java_EE企业应用实战_Struts2_Spring3_Hibernate整合开发】这个主题主要涉及的是Java EE领域中的三大框架——Struts2、Spring3和Hibernate的集成应用,这是构建现代Java后端系统的一种常见方式。这些框架...
本项目"mybatis_spring_struts2_tjz.zip"提供了一个集成这三大框架的小型示例,适合初学者学习和理解这些框架的协同工作。 1. **Struts2**:这是一个基于MVC设计模式的Java Web框架,负责处理HTTP请求和控制应用...
struts2.2.3_+_spring3.1.0_+_mybatis3.1.0集成简单.docx,我想免费让大家下载,可以不知道怎么设置,有知道的可以私信我
下面,我们将深入探讨Spring与Struts的集成方式,并基于给定的标题“Spring与Struts集成方式一”展开讨论。 首先,我们需要理解Spring和Struts的核心概念。Spring框架提供了一个全面的基础架构,支持创建健壮的、...
此外,Spring还提供了对数据库操作的支持,如JDBC模板和ORM集成,以及对其他框架的集成功能,如与Struts2和MyBatis的整合。 2. **Struts2框架**:Struts2是基于MVC设计模式的Web开发框架,它负责处理HTTP请求并将其...
这些拦截器可以在 struts.xml 中配置,并与 Spring 集成。 7. **Web.xml**:Web 应用的部署描述符,配置了 Struts2 和 Spring 的前端控制器(如 DispatcherServlet)。 8. **JSP 页面**:视图层的实现,通常用于...
*架构struts2_spring2.5_ibatis2.3 *mysql5.0 *jdk 1.6 *带有所有jar包,可直接运行 本实例实现了用户登陆,用户信息CRUD相关操作。让你感受到了ibatis做o/r mapping的方便快捷。 下次集成dwr进来 create ...
### Spring与Struts2整合原理详解 #### 一、整合背景及意义 随着企业级应用需求的日益复杂,单一...通过以上步骤,开发者可以在实际项目中轻松实现Spring与Struts2的集成,构建出功能强大且结构清晰的企业级应用。
这个“spring_struts1_hibernate”项目很可能是为了演示或学习这些框架如何协同工作而创建的一个空项目。下面我们将深入探讨这三个框架的核心功能和它们之间的集成。 **Spring框架** Spring 是一个全面的企业级应用...
"spring_struts2_mybatis配置文件架包"提供了整合这三个框架所需的配置文件和依赖库,为开发者提供了一个快速入门的模板。这个包对于初学者来说极其有价值,因为它减少了配置工作,使他们能够更快地理解和实践这些...
标题中的"itcast1222elec_spring_struts2_hibernate_DEMO_ringc96_"揭示了一个IT项目,它是一个整合了Spring、Struts2和Hibernate三个核心框架的演示应用。这个DEMO主要展示了如何在实际开发中有效地集成这三个流行...
1. 配置Spring:创建Spring的配置文件,定义Struts2的Action Bean以及MyBatis的SqlSessionFactory和Mapper接口的Bean,设置数据源和事务管理器。 2. 配置Struts2:在struts.xml中定义Action类,指定结果视图,同时...
通过上述步骤,我们可以构建一个高效、稳定的Spring与Struts集成应用。这种方式使得业务逻辑和控制层分离,提高了代码的可维护性和复用性,同时,Spring的事务管理和依赖注入也大大简化了开发工作。在实际项目中,...