2011-12-07 11 views
5

Estoy creando una aplicación web con Struts2, y estoy teniendo un problema con las acciones asignadas que trabajan con cualquier url.Struts 2 - Acciones mapeadas que trabajan con cualquier URL

En mi archivo struts.xml, he configurado un paquete con un espacio de nombre de "/ registration" con algunas acciones, siendo la principal "register". La raíz de contexto de mi aplicación es "aplicación/prueba".

Para acceder al formulario de registro, puedo ir a "localhost: 8080/app/test/registration/register.action" y carga mi formulario y funciona muy bien.

Sin embargo, si se agrega algo a la URL después del espacio de nombres, como "localhost: 8080/app/test/registration/arbitrary/text/here/register.action", el formulario aún está cargado.

Me gustaría evitar que esto suceda, para que solo pueda acceder al formulario la URL correcta. He intentado muchas opciones de configuración diferentes en struts.xml y web.xml en vano, y no puedo encontrar conocimiento sobre este tema fácilmente en la web.

¡Cualquier ayuda será apreciada, gracias!

struts.xml

<struts> 
    <package name="myPackage" namespace="/registration" extends="struts-default"> 
     <result-types> 
      <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/> 
     </result-types> 
     <action name="register" class="edu.uconn.test.action.RegistrationAction" method="input"> 
      <result name="input" type="tiles">/register.tiles</result> 
     </action> 
    </package> 
</struts> 

Respuesta

7

Ajuste el struts.mapper.alwaysSelectFullNamespace constante a true:

<constant name="struts.mapper.alwaysSelectFullNamespace" value="true" /> 

Esto puede tener consecuencias no deseadas cuando el aprovechamiento de apoyo de S2 para parámetros arbitrarios en las URL (por ejemplo, comodín, patrón de expresión regular coincidente)

+0

Gracias Dave! Lo gracioso es que le di a la documentación de configuración de struts unas pocas evasivas, y me perdí completamente esto. ¡Muy apreciado independientemente! –

+1

@ A.Cusano Está un poco enterrado; He hecho una nota para mencionarlo en el próximo lanzamiento en alguna parte, así que gracias :) –

+0

@DaveNewton: Ese es el problema principal con Struts2 tiene documentación oculta :) –

Cuestiones relacionadas