我对 Struts 和 Spring 都很陌生。我需要知道如何在 Struts ActionForm 中访问 Spring Service。即使是正确方向的指针也将不胜感激。
Anonymous
问问题
1931 次
3 回答
2
从 struts 1 ActionForm 类中,您将需要:
WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext).getBean("yourService");
于 2008-12-09T22:03:36.413 回答
1
通常,您将 spring contextloader 侦听器添加到您的 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 的全部内容。
于 2008-12-09T20:54:48.500 回答
1
您使用的是 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>
应用程序上下文.xml:
<bean name="/faq" class="com.mypackage.FAQAction" autowire="byType" />
我发现这种技术是最优雅的,它不会影响不使用 spring 的旧代码。
至少还有两种方法可以将支柱 1 与弹簧集成在一起。ibm developerworks 上有一篇文章解释了不同解决方案的优缺点,谷歌“Get a better handle on Struts actions, with Spring”(像我这样的新手不允许包含链接)。
于 2009-05-25T14:01:02.253 回答