1.在Action中取得BeanFactory对象,然后通过BeanFactory获取业务逻辑对象
在Action中用BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); 或ApplicationContext factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());取得BeanFactory,通过factory.getBean(""); 获取实例,调用业务逻辑方法 。
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>
2、将业务逻辑对象通过spring注入到Action中,从而避免了在Action类中的直接代码查询,web.xml配置同上
在struts-config.xml文件中配置Action <action>标签中的type属性需要修改为org.springframework.web.struts.DelegatingActionProxy DelegatingActionProxy是一个Action,主要作用是取得BeanFactory,然后根据<action>中的path属性值 到IoC容器中取得本次请求对应的Action
<action path="/notes" name="admin" type="org.springframework.web.struts.DelegatingActionProxy" parameter="method" scope="prototype"/>
在spring配置文件中需要定义struts的Action,如:<bean name="/notes" class="com.qqhr.lh.struts.Action.NotesAction"> <property name="noteService" ref="notesService"></property> </bean>
这里的name名称要与<action>标签的path属性值一致
将scope设置为prototype,这样就避免了struts Action的线程安全问题
必须注入业务逻辑对象
private NoteService noteService ;
3、使用Spring 的 ActionSupport整合Struts, struts-config.xml添加代码如下:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in>
Action里继承 Spring 的 ActionSupport
而不是 Struts Action
类扩展如下:
使用 getWebApplicationContext()
方法获得一个 ApplicationContext
public class UserAction extends ActionSupport{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ApplicationContext ctx = getWebApplicationContext(); UserService user= (UserService) ctx.getBean("xhf") ; user.load("邢**","北京"); return null ; } }
4、使用Spring 的DelegatingRequestProcessor
覆盖Struts 的RequestProcessor
Struts-config.xml文件修改如下:
<action path="/searchSubmit" type="org.springframework.web.struts.DelegatingActionProxy" input="/notes.do" validate="true" name="notesForm">
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in>
分享到:
相关推荐
JPA+Spring+Struts整合实例,JPA+Spring+Struts整合实例
里面有spring+struts2+ibatis整合的jar包,
SSH+Redis整合
ibatis+Spring+struts2整合实例
spring+struts2+mybatis整合的一个小工程,可以用来学习框架搭建,里面是工程的原代码,可以直接导入到eclipse中。
spring+struts+hibernate+jbpm+dwr整合开发的OA办公系统源码
使用ibatis+spring+struts2 做的开发例子 帮助大家一起学习ibatis的整合
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
Spring+Struts2+Ibatis整合例子,jar太大不让上传,删除了,看配置文件吧
Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子
hibernate+spring+struts一个简单例子 <br>jar自己去下 test.sql 是mysql的脚本
compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发
Spring+Struts+MyBatis框架整合
最简单的Spring+Struts2+Hibernate整合例子,MySql数据库,IDE是JavaEE版的Eclipse,tomcat7.0 ,实现功能:登录+注册+增删改查+一键清空数据库表的数据。所有jar文件都在里面了。
SSM(Spring+Struts2+Mybatis)整合步骤 纯手写
1.使用Spring 的 ActionSupport 2.使用Spring 的 DelegatingRequestProcessor 类。 3.全权委托。
一个简单的spring+struts+ibatis整合的实例,实现了用户登录,用户登录成功则显示欢迎信息,失败则显示用户名或密码错误,该实例非常简单基础,特别适合新人学习,工程包含了必要的资源包,部署到服务器中及可运行,...
ssh框架实例(MyEclipse+struts+spring+hibernate整合) 一个小小的登陆工程 初学者这个实例最恰当不过了,里面包含了建立工程的过程 步骤,源工程,
spring+struts+mybatis整合项目
Spring+Struts2+Ibatis整合