`
storm0912
  • 浏览: 34058 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts2: Spring Plugin

阅读更多

在使用struts2开发Action的时候遇到一个问题,注解@Autowired不起作用,导致出现NullPointerException。这说明了Action实例并不是由spring来创建的(由struts2的objectFactory创建)。那么有什么办法可以将Action Bean交给Spring来管理吗?这时struts2的spring plugin就派上用场了。

Spring plugin的功能有:

1. 允许有spring来创建Action, Interceptor和Results.

2. Sturts创建对象完成后,可以使用spring来完成@Autowired

3. 如果不使用Spring的ObjectFactory来创建,此插件提供了两个Interceptor来完成Action中的@Autowired.

使用这个插件时我们要做的工作很少,很简单

1. 将此插件的jar加入classpath

2. 添加struts常量如下:

sturts.properties

struts.objectFactory = org.apache.struts2.spring.StrutsSpringObjectFactory

 或者

struts.xml

<struts>
  <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
  ... 
</struts>

 具体请参考:

http://struts.apache.org/2.0.14/docs/spring-plugin.html

1
1
分享到:
评论
2 楼 lendo.du 2010-10-21  
Spring和Struts集成的时候,如果使用xml配置,那么StrutSpringObjectFactory会以action配置中的class的名字到Spring中查找对应的id,如果找不到则由Struts自己创建,但是在使用Annotation的时候,我们是无法指定class属性的,这时struts的actionInvocation不是去找class别名,而是用Action包含包的全路径名到Spring中查找,这样当然查找不到,当然可以在Action上加上@Component("com.xxx.yy.ss.XxxAction")注解,但这种方式很丑陋,在使用注解的时候,可以自己写一个对象工厂,如果用名字到Spring中找不到,那么就用类型到Spring中查找对应的Spring的id,查出来是一个数组,取数组的第一个变量即可,同时需要主机,默认的StrutSpringObjectFactory在创建对象的时候如果找不到对象,则让Struts自己创建对象,增加了按类型查找以后,需要注意只按类型查找我们的业务Action,而不要去按类型匹配Struts和Xwork本身的一些类。
1 楼 volking 2010-06-05  
我还是不行 ,构造方法输入可以,为何属性注入就是null呢?
//下面可以,userService有值
public class AddUser extends ActionSupport {
  private UserService userService;
  @Autowired
  public AddUser(UserService userService) {
    this.userService = userService;
  }
  public AddUser(){
   //非常郁闷的是,必须写这个默认构造函数,否则提示错误,ACTION初始化失败
  }
}



//下面不可以,userService取出的值是null
public class AddUser extends ActionSupport {
 @Autowired
  private UserService userService;
}

相关推荐

    struts2-spring-plugin-2.3.4.jar

    Struts2-Spring-Plugin-2.3.4.jar 是一个专门为 Struts 2 框架和 Spring 框架整合而设计的插件,主要用于处理 Struts 2 和 Spring 之间的集成问题。在Java Web开发中,这两个框架经常一起使用,Spring 提供了依赖...

    struts2-spring-plugin-2.2.1.jar

    Struts2-Spring-Plugin-2.2.1.jar 是一个专门为 Struts2 框架与 Spring 框架集成而设计的插件。这个插件的主要目的是简化在基于Struts2的应用程序中整合Spring的功能,如依赖注入(DI)、AOP(面向切面编程)以及...

    SSH\\others\\struts2-spring-plugin-2.2.1.jar

    &lt;plugin class="org.apache.struts2.spring.plugin.SpringPlugin"&gt; &lt;param name="contextConfigLocation"&gt;classpath:spring/applicationContext.xml &lt;/plugin&gt; &lt;!-- ...其他配置... --&gt; &lt;/struts&gt; ``` 在...

    struts2-spring-plugin-2.3.15.3.jar

    struts2-spring-plugin-2.3.15.3.jar struts整合Spring的插件Jar包。

    JavaEE源代码 struts2-spring-plugin-2.0.11

    JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-...

    struts2-spring-plugin-2.5.13.jar

    搭建struts2 + spring框架时需要使用的关联jar struts.xml中action的属性class引用applicationContext中bean的属性id指向的值

    struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar

    struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar

    搭建SSH框架需要引入的Struts2包(log4j,spring-web,struts2-spring-plugin)

    `struts2-spring-plugin-2.5.16.jar`是Struts2与Spring集成的插件,它使得Struts2可以利用Spring的依赖注入(DI)和面向切面编程(AOP)能力。通过这个插件,我们可以将Action类的实例化和管理交给Spring容器,从而...

    struts2-spring-plugin-2.3.31.jar

    struts2-spring-plugin-2.3.31.jar

    struts2-spring-plugin-2.2.3.jar

    Struts2-Spring-Plugin-2.2.3.jar 是一个专门为 Struts2 框架与 Spring 框架整合而设计的插件。在Java Web开发中,这两个框架都极其常见,Struts2 提供了MVC(模型-视图-控制器)架构模式,而Spring则是一个强大的...

    struts2-spring-plugin-2.3.24.1.jar

    最新struts2-spring-plugin-2.3.24.1.jar

    struts2 spring plugin 2.3.32

    struts2 spring plugin 2.3.32,用于漏洞修复

    struts2-spring-plugin-2.0.6.jar

    struts2-spring-plugin-2.0.6.jar

    struts2-spring-plugin-2.0.11.1.jar

    Struts2-Spring-Plugin-2.0.11.1.jar 是一个专门为Apache Struts2框架设计的插件,其主要目的是实现Struts2与Spring框架的集成。这个插件使得开发者能够在Struts2应用中无缝地使用Spring进行依赖注入(Dependency ...

    struts2-spring-plugin-2.2.1.1.jar

    Struts2-Spring-Plugin-2.2.1.1.jar是Apache Struts 2框架的一个重要插件,主要用于整合Struts 2与Spring框架。这个插件在开发基于SSH(Struts 2、Spring、Hibernate)的企业级应用时扮演着关键角色。SSH是一个流行...

    struts2-spring-plugin

    struts2和spring整合不可或缺的价包struts2-spring-plugin

    struts2-spring-plugin-2.2.3.1.jar

    Struts2-Spring-Plugin-2.2.3.1.jar是Apache Struts框架与Spring框架集成的一个插件,主要用于帮助开发者在基于Struts2的应用程序中无缝地使用Spring进行依赖注入(Dependency Injection,DI)和控制反转(Inversion...

    struts2-spring-plugin-2.1.2.jar

    导入struts2-spring-plugin包,在web.xml中设置spring的监听器, spring监听器对应的API类为:org.springframework.web.context.ContextLoaderListener。 struts2-spring-plugin包为我们将struts2的对象工厂设置为...

    struts2-spring-plugin-2.1.8

    struts2-spring-plugin

Global site tag (gtag.js) - Google Analytics