Struts和Spring在一起?

时间:2008-12-09 20:44:14

标签: spring struts service actionform

我对Struts和Spring都很陌生。我需要知道如何在Struts ActionForm中访问Spring Service。即使是正确方向的指针也会受到赞赏。

3 个答案:

答案 0 :(得分:2)

从struts 1 ActionForm类中你需要:

WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext).getBean("yourService");

答案 1 :(得分:2)

您使用的是Struts 1还是2?

如果您正在使用Struts 1,那么有几种方法可以实现。我更喜欢使用org.springframework.web.struts.DelegatingActionProxy。您需要在类路径中使用spring-webmvc-struts.jar。

的struts-config.xml:

   <action path="/faq" type="org.springframework.web.struts.DelegatingActionProxy" name="faqForm" parameter="method">
        <forward name="List" path="faq.list" />
    </action>

的applicationContext.xml:

<bean name="/faq" class="com.mypackage.FAQAction" autowire="byType" />

我发现这种技术最优雅,它不会影响不使用spring的旧代码。

将struts 1与spring集成至少还有两种方法。在ibm developerworks上有一篇文章解释了不同解决方案的优缺点,google“使用Spring更好地处理Struts操作”(像我这样的新手不允许包含链接)。

答案 2 :(得分:1)

通常将spring contextloader listener添加到web xml。

<listener>
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

然后添加

<constant name="struts.objectFactory" value="spring"/>

到你的struts.xml。

然后在你的动作课中你可以说:

class MyAction {
  @Autowired MyService service;
   ....
}

这就是struts2的全部内容。