gc00001 2013-05-06 16:30
浏览 218
已采纳

关于struts2和spring整合的问题

以前培训的时候讲到过这个,整合正常的做法是导入struts2-spring-plugin.jar包,然后在struts.xml里面配置action标签的class属性时直接写创建action类的bean id的名字,而不是直接写类的路径,当然new action类是通过spring来创建bean的(不管是注解方式还是xml方式),但是实验结果是就算不导入struts2-spring-plugin.jar包,struts.xml里面配置action标签的class属性时直接写类的路径,并且也不用spring来new action类也是可以将struts2和spring整合起来的,下面我贴下一个实验代码:
(没有导入struts2-spring-plugin.jar)

applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<!-- 设置需要进行Spring注解扫描的类包 -->

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


<package name="root" namespace="/" extends="struts-default"> 


 <action name="user" class="com.niit.test.UserAction" >
        <result name="res">/res.jsp</result>
    </action>
</package>

web.xml:
<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

index.jsp


struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2
/*

<!-- 定义Spring配置文件位置 -->

contextConfigLocation

classpath:applicationContext.xml


<!-- 对Spring容器进行实例化 -->

org.springframework.web.context.ContextLoaderListener

index.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


111


res.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


  • 写回答

2条回答

  • jinnianshilongnian 2013-05-07 06:47
    关注

    不导入struts2-spring-plugin.jar包 这个是必须导入的 不导入肯定注入不了

    如果你是用eclipse测试的 建议多clean几次 然后再试

    你在acton的某个方法输出下userService 一定为null


    首先struts2 new一个,然后交给struts2-spring-plugin 注入依赖

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler