一.用spring的DelegatingRequestProcessor替换struts的RequestProcessor.
1)不要在web.xml中设置ApplicationContext的自动加载,在struts-config.xml中通plug-in设置.
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property value="/WEB-INF/applicationContext.xml,/WEB-INF/appContext.xml" property="contextConfigLocation" />
</plug-in>
2)在struts-config.xml中设置RequestProcessor的替换类.
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
3)不要在struts-config.xml中的<action>元素中设置action的type属性.
<action path="/login" input="/index.jsp"
validate="true" scope="request">
<forward name="forward" path="/success.jsp"></forward>
</action>
4)在applicationContext.xml或其他spring bean配置文件中设置由DelegatingRequestProcessor转发的bean,这个bean就是Action类.
<bean name="/login" class="mypack.LoginAction" singleton="false">
<property name="property1" ref="otherbean"/>
</bean>
二.使用DelegatingActionProxy,此种方法是在action中再把请求转发给定义在applicationContext.xml中的Action.
1)同第一种方法的1).
2)如果试了第一种方法,去掉struts-config.xml中的
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
元素.
3)需要在struts-config.xml中定义action的type="org.springframework.web.struts.DelegatingActionProxy".即第一种方法的3)中加入type属性.
<action path="/login" input="/index.jsp" validate="true"
scope="request" type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="forward" path="/success.jsp"></forward>
</action>
4)同第一种方法的4).
三.使用Spring的ActionSupport .
Spring 的ActionSupport 继承至org.apache.struts.action.Action
ActionSupport的子类可以或得 WebApplicationContext类型的全局变量。通过getWebApplicationContext()可以获得这个变量。
这是一个 servlet 的代码:
public class LoginAction extends org.springframework.web.struts.ActionSupport {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
//获得 WebApplicationContext 对象
WebApplicationContext ctx = this.getWebApplicationContext();
LoginDao dao = (LoginDao) ctx.getBean("loginDao");
User u = new User();
u.setName(loginForm.getName());
u.setPwd(loginForm.getPwd());
if(dao.checkLogin(u)){
return mapping.findForward("success");
}else{
return mapping.findForward("error");
}
}
}
applicationContext.xml 中的配置
<beans>
<bean id="loginDao" class="com.cao.dao.LoginDao"/>
</beans>
|
分享到:
相关推荐
Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
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全注解...
ssh三大框架的整合步骤,非常详细。包含spring整合struts、spring整合hibernate、声明式事务说明等。
Struts1+Spring2+Hibernate2整合详细例子
SSH整合jar包-spring5.0+hibernate5.1+struts2.5 使用测试通过的
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
struts+spring+hibernate整合
一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流
希望此套框架整合对深入了解和学校Struts2+Spring4+Hibernate4三大框架整合技术有帮助
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
spring+hibernate+struts
有关Struts2+Spring+Hibernate和Struts2+Spring+Ibatis的整合实例demo 原创,完全基于eclipse开发
struts1+spring+hibernate整合所用全部jar包
Struts1+Spring+Hibernate整合注册登录(BLing原创).part1.rar 有二个文件
SSH+Redis整合
Struts+Spring+Hibernate 整合教程Struts+Spring+Hibernate 整合教程Struts+Spring+Hibernate 整合教程Struts+Spring+Hibernate 整合教程
spring3.0+hibernate3.3+struts2整合jar包
在weblogic下整合struts+spring+hibernate,实现struts portlet
Java-Spring+Struts+Hibernate-SSH框架整合01-Spring+Hibernate(一步一步的教你敲代码)(博客园,博客名称:Java-Spring+Struts+Hibernate-SSH框架整合01-Spring+Hibernate)
简单struts+spring+hibernate搭建,配置,适合初学者