`
阅读更多
spring2.08 webwork2.24
注入Action中的service出现问题,注入的service,和引用的service不是同一个对象。
无论是不是singleton都出现execute方法里面引用的service为null,声明为singleton="true"时初始化时setter方法里的service有效。
或者把service声明为static的也没问题。

Action

Java代码  收藏代码
public class SystemAction extends ActionSupport implements ModelDriven{ 
    SystemModel sm = new SystemModel(); 
    private SystemService systemService; 
     
    public String execute() throws Exception { 
        System.out.println("in execute systemservice is "+systemService); 
        systemService.TestSystemDAO(); 
        return SUCCESS; 
    } 
 
..setter..省略 


Action的注入
Java代码  收藏代码
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans> 
        <bean id="systemAction" class="net.xx.control.action.SystemAction" singleton="false"> 
        <property name="systemService"> 
            <ref bean="userService"/> 
        </property> 
        </bean> 
</beans> 


xwork.xml

Java代码  收藏代码
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd"> 
<xwork> 
    <include file="webwork-default.xml" /> 
    <package name="default" extends="webwork-default"> 
        <interceptors> 
            <interceptor-stack name="modelParamsStack"> 
                <interceptor-ref name="params" /> 
                <interceptor-ref name="model-driven"/> 
            </interceptor-stack> 
        </interceptors> 
    </package> 
<include file="net\xx\control\config\webwork-user.xml"/> 
</xwork> 


webwork-user.xml

Java代码  收藏代码
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd"> 
<xwork> 
<package name="login" extends="webwork-default" namespace="/user">   
    <action name="login" class="net.xx.control.action.SystemAction"> 
            <result name="success" type="dispatcher"> 
                <param name="location">/index.jsp</param> 
            </result> 
            <result name="error" type="dispatcher"> 
                <param name="location">/login.jsp</param> 
            </result> 
        <interceptor-ref name="modelParamsStack"/> 
    </action> 
</package>  
</xwork> 


web.xml

Java代码  收藏代码
<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4"  
    xmlns="http://java.sun.com/xml/ns/j2ee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <servlet> 
        <servlet-name>webwork</servlet-name> 
        <servlet-class> 
            com.opensymphony.webwork.dispatcher.ServletDispatcher 
        </servlet-class> 
        <init-param> 
            <param-name>contextConfigLocation</param-name> 
            <param-value>/WEB-INF/applicationContext*.xml</param-value> 
        </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
 
    <servlet-mapping> 
        <servlet-name>webwork</servlet-name> 
        <url-pattern>*.action</url-pattern> 
    </servlet-mapping> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
 
    <context-param> 
        <param-name>contextConfigLocation</param-name> 
        <param-value>/WEB-INF/applicationContext*.xml</param-value> 
    </context-param>  
        <filter>  
        <filter-name>openSessionInViewFilter</filter-name>  
        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>  
    </filter>  
 
    <filter-mapping>  
        <filter-name>openSessionInViewFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping> 
</web-app> 


在javae也搜索到类似的问题,但。。还是没解决
http://www.iteye.com/post/139291

解决了
原来默认的是根据name来注入action的service
在webwork.properties
声明一下,就行了。。。吐血。。。
webwork.objectFactory.spring.autoWire = type
分享到:
评论

相关推荐

    java程序员常用英语

    * action 行动 * arithmetic 算法 * adjustment 调整 * actual 真实的 * argument 参量 * abstract 抽象 * ascent 提升 * already 已经 这些英语单词都是 Java 语言中常用的数组相关单词,了解这些单词可以帮助...

    工作总结 工作总结 程序员 工作总结 程序员

    Struts1和Struts2各有优缺点,转换过程中需要解决兼容性问题,比如Action的处理、拦截器(Interceptor)的差异以及视图层的适配。同时,这个过程也可能是为了维护旧系统的稳定或适应特定项目需求。 3. Flash上传...

    黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件).zip

    在本视频教程“黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件)”中,讲师毕向东深入讲解了Java GUI中的Action事件处理机制,这是构建用户友好界面的关键部分。 首先,我们要理解什么是GUI。GUI,...

    高级程序员必备条件

    它通过Action类处理用户的请求,支持拦截器、验证等特性。熟悉Struts2框架有助于快速构建健壮的Web应用。 #### AOP(面向切面编程) AOP是一种编程范式,用于将横切关注点(如日志记录、事务管理等)从业务逻辑中...

    黑马程序员 struts2.1 视频教程

    19_黑马程序员_struts2.1视频教程_对Action中所有方法进行输入校验.rar和22_黑马程序员_struts2.1视频教程_基于XML配置方式实现对action的所有方法进行校验.rar这两部分将详细介绍Struts2的验证机制。无论是基于注解...

    程序员常用英语词汇.pdf

    9. action: 动作,指用户与系统交互时执行的操作。 10. activate: 激活,使某功能或进程开始执行。 11. active: 活动的,形容某个进程或状态处于运行中。 12. actualparameter: 实参,函数调用时传递给函数的实际值...

    黑马程序员SSM整合学习项目demo

    这个“黑马程序员SSM整合学习项目demo”是一个实践性的学习资源,通过它,你可以深入了解SSM框架的整合过程,提升Java Web开发能力。在实际项目中,SSM框架的整合可以大大提高开发效率,同时提供良好的可维护性和...

    一个程序员的自省 iBATIS In Action:iBATIS的安装和配置

    【iBATIS In Action:iBATIS的安装和配置】 iBATIS,作为一个知名的持久层框架,其安装和配置过程相对简洁,对于熟悉C#和ADO.NET的开发者来说,理解并应用这个框架是进一步提升开发效率的关键。iBATIS并非一个独立...

    程序员必备专业词汇1700词.docx

    在计算机专业中,有很多专业词汇需要程序员掌握。下面,我们将从提供的文件中提炼出一些重要的知识点,并对它们进行详细的解释。 1. Abstract和Abstraction 抽象(Abstract)是一种设计模式,指的是定义一个对象的...

    Java程序员的推荐阅读书籍.rar

    《Spring in Action》是Spring框架领域中的权威书籍,它详细讲解了如何使用Spring进行高效的应用开发。通过这本书,读者能够深入理解Spring的核心机制以及如何设计和实现企业级应用。 另一方面,随着Java虚拟机...

    程序员英语单词册

    程序员必备的 600 个英语词汇(1) 对于时刻需要和国际接轨的码农们,英语的重要性是毋庸置疑的。尤其是那些胸怀大志的潜 在大牛 们,想在码农行业闯出一片天地,秒杀身边的小弟们,熟练掌握英语更是实现其目标最关键 的...

    安卓黑马程序员课表

    - 学习Action类的设计模式,了解拦截器、配置文件等组件的作用。 - 实现基于Struts2的用户登录注册系统。 #### 6. 3G手机Android应用开发—核心基础 - **知识点概述**:此部分涵盖了Android开发的基础知识,适合...

    黑马程序员struts2框架2016版资料

    "黑马程序员"是一家知名的编程教育机构,他们提供的Struts2框架教程资料旨在帮助开发者深入理解和掌握这一技术。 Struts2的核心特性包括: 1. **Action类**:它是业务逻辑处理的主要载体,继承自`ActionSupport`类...

    程序员所用到的英语词汇-java语言借鉴.pdf

    首先是数组(array)、苹果(apple)、增加(add)、可存取的(accessible)、面积(area)、音频(audio)、加法(addition)、行动(action)、算法(arithmetic)、调整(adjustment)、真实的(actual)、参数...

    JavaEE程序员必读图书大推荐

    - **《Spring in Action》** 星级:★★★★☆ 适合对象:初级,中级,高级 Spring框架是现代Java应用程序的核心组成部分,本书通过丰富的实例,详细介绍了Spring的核心功能和最佳实践。 - **《精通Spring2.x...

    黑马程序员struts2人员管理系统

    总结起来,"黑马程序员Struts2人员管理系统"项目涵盖了Struts2框架的基础知识,包括MVC模式的理解、Action的编写、拦截器的使用、数据库操作、JSP页面设计等。通过实际操作,开发者不仅可以提升技能,还能更好地理解...

    java程序员面试题

    Struts是MVC架构的一种实现,考察对Action、Form Bean、配置文件的理解及实际应用。 3. **23kings_OOAD.doc**: OOAD(面向对象分析与设计)是软件开发的核心,面试者需熟练掌握UML图(类图、序列图、用例图等)、...

    Java程序员面试题大全

    - Struts框架的五个主要类包括ActionForm、ActionMapping、ActionServlet、Action和ActionForward,其中ActionServlet是MVC中的Controller。 3. Java编程: - Test类的构造器和静态初始化块顺序:`a`(静态初始化...

    JavaScript获取网页表单action属性的方法

    JavaScript获取网页表单的action属性是一种常用的操作,通常用于获取表单提交时要发送到的URL地址。...action属性指定了表单提交后...理解并熟练运用这些JavaScript操作表单的技巧,对于进行Web开发的程序员来说至关重要。

Global site tag (gtag.js) - Google Analytics