`
fxly0401
  • 浏览: 143843 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)spring struts2整合之action产生问题

阅读更多
原文链接:[url]http://blog.csdn.net/ms2146/article/details/5546741 [/url]
Spring和Struts2的整合只需一个插件包,不过笔者在练习的过程中,被一个小问题给郁闷了好久。

按道理来说Spring和Struts2整合之后,Action的创建以及属性注入是有Spring来管理的,是否由Spring来管理Action的创建与属性注入还是要取决于我们的配置,如下为ModulAction的配置:

<action name="modul" class="com.spl.action.ModulAction">  
            <result name="index">/modul/index.jsp</result>  
        </action>
 

    眨眼一看没有什么错误,不过要是和Spring整合之后就会发现Class处应为Spring中相应Action的id,不错,是这样的。那么要是我们的Class直接写成Action的全路径会有什么问题吗?问题是有的,慢慢分析。我们先试着在applicationContext.xml中配置上Action:

<bean id="modulAction" class="com.spl.action.ModulAction" scope="prototype">  
            <property name="service">  
                <ref bean="businessService"/>  
            </property>          
        </bean>  

   在Spring中是有配置businessService的,然后ModulAction属性:

BusinessService service;  
    public BusinessService getService() {  
        return service;  
    }  
    public void setService(BusinessService service) {  
        this.service = service;  
    }  


   启动工程,运行ModulAction,会发现service为null,为什么呢?上面的applicationContext.xml不是已经为Action注入了businessService么?问题就出在这了,这里的Action的控制权是由sturts掌管着,因为在struts.xml配置Action的时候为其指定Class的是类全名,而不是Spring中Aciton的id。所以当我们访问Action的时候首先由struts创建Action,然后在跟据Action的属性service去spring容器中去找id为service的bean,因为在spring容器中我们配置的是businessService名,所以struts会找不到他想要的bean,故为空,要是把action中的属性改为businessService那么就不会出null异常。

   相反,要是把struts中action的class设置为spring容器中的bean的id时,action的创建及属性注入式有spring来管理的。
分享到:
评论

相关推荐

    struts2+spring+hibernate整合示例

    SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2、hibernate、mybatis等,今天我们来同时整合下 struts、spring、hibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合...

    struts2和spring3注解整合问题

    求有爱的大大帮忙解决一下strut2和sprin3注解找不到action的问题

    struts2与spring与hibernat整合

    Java项目中通过Eclipse新建的Web项目,常包含Web.xml,通过该配置文件配置项目的必要信息,常做BS结构项目的人对Web.xml比较熟悉。一般情况下建立Web项目时,和Struts中的action请求向结合如下来配置,

    Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程

    2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    SSH笔记-Spring整合Struts2

    SSH笔记-Spring整合Struts2,作用是使用 IOC 容器来管理 Struts2 的 Action

    学习笔记之struts2整合Spring

    整合Spring,换句话说,也就是让spring的IOC功能为我们的struts action注入逻辑组件....

    struts2 + spring + mybatis 框架整合jar包

    class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;&lt;/filter&gt;&lt;filter-mapping&gt;&lt;filter-name&gt;struts2&lt;/filter-name&gt;&lt;url-pattern&gt;*.action&lt;/url-pattern&gt;&lt;/filter-mapping...

    整合struts2和spring源代码(可以直接在tomcat中运行)

    可以直接运行,并对整合spring和struts2步骤及需要注意的事项进行类总结 整合spring和struts2总结 1.将struts2和spring中的库文件复制到项目下(可以查看WEB-INF\lib目录下的文件) 注意:struts2-spring-...

    Struts2+Hibernate+Spring整合实例

    Struts2+Hibernate+Spring整合实例,登陆注册实例,简单来说,Spring通过IoC容器上管(Struts2)Action的创建并依赖注入给控制器,下管(hibernate)SessionFactory的创建并依赖注入给DAO组件,是一个巨大的工厂

    freemarker+struts2+spring完美整合!

    部署到tomcat中, 访问/freemarker/build_index.action 点击首页生成,当显示生成成功过后 然后访问 ...已经完美将struts2+freemarker+spring整合~ 希望对你们有所帮助。 经测试:tomcat5.5 无法正常运行

    第17讲 Spring、hibernate和Struts2的整合

    ②把action交给spring管理,即在spring配置文件中定义action Bean并使用依赖注入功能在action中注入业务Bean,同时修改作用域。 ③在struts.xml中的class使用第②步中所定义的action Bean 的id属性值。

    struts2 spring3 mybatis mysql 整合,实现简单登录

    struts2 spring3 mybatis mysql 整合,实现简单登录。 资源中包含使用的jar包,导入工程可调试 http://localhost:8080/SSM/user/gotoLogin.action

    Struts2SpringUnitDemo单元测试

    Struts2 Spring 框架整合 单元测试 Action和Service http://blog.csdn.net/fansunion/

    Spring+Hibernate+Struts的整合

    实现Spring和Struts框架的整合,解决的问题 1.由Spring容器来管理Action 2.将对Action的请求转发到Spring容器 3.在Struts框架之前启动Spring容器

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    Struts Spring Hibernate 整合 OpenSessionInView 例子

    2.通过spring注入dao到 action 3.通过 open session in view filter 支持 延迟加载 4.在页面上通过 jstl 很优雅的获取数据 5.通过 spring aop(aspectJ) 声明事务 6.通过formular 映射参数表,指定两个死的变量

    struts2+spring2+ibates

    2、在sping配置中注意单元测试里,xml文件的路径问题,要用绝对路径。 3、struts.xml中命名空间和拦截器的使用。 4、sqlmapconfig.xml中传入参数和result的设置,只需要将得到的值result映射到有此属性的类对象. 5、...

    struts1.2+spring2.0+hibernate3.1框架整合实例

    采用在web.xml中加载spring配置文件的方法降低struts和spring的耦合度,使用自定义的MyDelegatingRequestProcessor类来代替spring的DelegatingRequestProcessor类来解决spring中action的bean的重复配置问题。...

Global site tag (gtag.js) - Google Analytics