Prototype Scope con Struts 2
Hola a todos, les pido ayuda, ya he buscado en google y no encuentro nada. Tengo una aplicacion con Struts 2 e inyecto los Actions con Spring 2.5. Primero tenía los Beans de los Actions con el scope default "singleton" pero se cruzaban los datos cuando había dos sesiones o sea dos usuarios escribiendo datos, cambie a "prototype", sólo que ahora se estan perdiendo los datos del "value stack", y pierdo los objetos entre formularios, con el scope "session" simplemente no funcionan los Actions, una solución que puse en práctica fue guardar los objeos en el SessionMap pero se hace un lio. Se agradece cualquier comentario.
Saludos






Resolucion del problema
Sólo en caso de que a alguien le interese, la solucion de mi problema fue la siguiente:
Usar el scope="session"
Aunque en el mensaje original había comentado que session me daba errores. Bueno puse la siguiente linea en el struts.xml:
<constant name="struts.devMode" value="true" />
ESto me permitio ver por que el scope session estaba devolviendo ese error, despues encontre esta liga:
forum.springsource.org/showthread.php
De ahi hallé luz y modifique esto en mi fichero de despliegue web.xml:
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
Listo, esto soluciono el problema.
Saludos.
Hola, Sin conocer tu
Hola,
Sin conocer tu aplicación, veo que tienes un diseño mal aplicado, ya que no deberias guardar estado en beans de Spring, por ello tienes los problemas de que se "cruzan" los dato, eso es un problema de implementación tuyo.
Si requieres guardar información del usuario, deberias guardarlo en la sesión/request, o en el cliente, jamas en un bean de Spring
Para conocer mas tu problema y ayudarte mejor, estaria bien que mandaras mas información.
Saludos
Gracias
Hola, gracias por tu comentario, no es informacion del usuario, son los datos que se capturan de un formulario, pero al estar en el value stack, como los actions estaban como singleton, es obvio solo se usaba un action, por instancia solicitada al container de spring, ahora lo que hice fue ponerlo en prototype, pero entre cada request se pierde la información. sabes leí algo de struts 2 antes de implementarlo y amenos que la especificacion este mal, el value stack es para persistir los objetos.