java - etiquetas - struts 1 tutorial
ImplementaciĆ³n de la aplicaciĆ³n Struts2 sin ContextPath (2)
Tengo una aplicación struts2 corriendo bajo un contextpath "/ ruta" en mi tomcat local sin problemas. Cuando lo despliego en un servidor web (usando un proxy para redirigir desde " http://www.domain.com " a "miservidor: 8080 / path /") Struts hace todo tipo de cosas extrañas.
Primero, incluye el contexto en -etiquetas. Eso puede ser desactivado por un atributo. Pero, por desgracia, también incluye la ruta en los atributos de acción de mis formularios, por lo que un formulario de inicio de sesión apunta a " http://www.domain.com/path/login.action " en lugar de " http: //www.domain". com / login.action "...
¿Existe alguna posibilidad de que de alguna manera cambie el contexto predeterminado que se agrega aquí o desactívelo para los formularios? (Me gustaría guardar las etiquetas, solo parece que se deben usar formularios HTML predeterminados). ¡Gracias de antemano!
Aunque estoy respondiendo muy tarde a esta pregunta, pero llegué a esta página recientemente cuando estaba enfrentando el mismo problema.
La aplicación en la que estaba trabajando estaba agregando el contexto-raíz viz. ''myContextRoot'' a mi url en localhost y funcionaba perfectamente allí. Por ejemplo, como se mencionó anteriormente, la acción ''myAction'' se estaba convirtiendo en http://localhost:8050/myContextRoot/myAction.action
Pero en el momento en que lo implementé en un servidor, dejó de funcionar, y luego de buscar como el infierno, encontré un solución para mí Estoy desplegando un archivo EAR en glassfish y allí tenemos un archivo application.xml. En application.xml tenía una etiqueta ''context-root'' cuyo valor era ''myContextRoot'' que cambié a ''/'' y luego obtuve mi url como en localhost y
Espero que pueda ayudar :)
Descubrí que otros también tenían el problema, pero los fabricantes del marco no parecen pensar que esto sea un problema. Mis soluciones:
- use includeContext = "false" en todos los s: url-tags
- en lugar de la etiqueta s: form, use una forma habitual, establezca la acción en "actionname.action" e incluya una tabla simple con plantrows () para cada campo. Todavía puede usar s: textfield y tal.
- lamentablemente, las sesiones HTTP ya no funcionarán, ya que se configuran para la ruta "/ ruta" (ApplicationPath). Esto se debe a la cookie que guarda el JSESSIONID configurado en / path. Esto significa que sus visitantes solo obtendrán variables de sesión almacenadas cuando estén en http://www.domain.com/path/login.action y que se perderán cuando sean redirigidos a http: //www.domain. .com / interestingstuff.action ... mi solución es un truco que requiere configurar la cookie JSESSIONID en el cliente a través de JavaScript como se describe aquí: Struts2: Problema de sesión (después del proxy inverso)
Espero que esto ayude a alguien ... si encuentras mejores soluciones, házmelo saber. :-)