tag lib form spring struts service actionform

lib - Struts y Spring juntos?



tag lib jstl (3)

Soy bastante nuevo para Struts y Spring. Necesito saber cómo acceder a un Spring Service en un Struts ActionForm. Incluso un puntero en la dirección correcta sería apreciado.


¿Estás usando Struts 1 o 2?

Si está utilizando Struts 1, hay dos formas de hacerlo. Prefiero hacerlo usando org.springframework.web.struts.DelegatingActionProxy. Necesitarás tener spring-webmvc-struts.jar en classpath.

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" />

He encontrado que esta técnica es la más elegante, no afecta el código antiguo que no usa la primavera.

Hay al menos dos formas más de integrar los puntales 1 con la primavera. Hay un artículo en ibm developerworks que explica los pros y los contras de las diferentes soluciones, google "Obtenga un mejor manejo de las acciones de Struts, con Spring" (los novatos como yo no podemos incluir enlaces).


Desde una clase struts 1 ActionForm necesitarás:

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


Normalmente agrega el oyente de carga de contexto de primavera a su web xml.

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

Luego agregas

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

a su struts.xml.

Luego, en su clase de acción puede decir cosas como:

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

Eso es todo lo que hay para struts2.