Struts y Spring juntos?

votos
2

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.

Publicado el 09/12/2008 a las 21:44
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
2

¿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).

Respondida el 25/05/2009 a las 15:01
fuente por usuario

votos
2

Desde una clase struts 1 ActionForm necesitarás:

WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext).getBean("yourService");
Respondida el 09/12/2008 a las 23:03
fuente por usuario

votos
1

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.

Respondida el 09/12/2008 a las 21:54
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more