2012-08-23 10 views
5

Tengo un problema si elimino la extensión .action dentro de mi aplicación Struts2. Pongo esto en mi struts.xml:¿Por qué welcome-file-list no funciona si elimino struts2 .action extension?

<constant 
    name="struts.action.extension" 
    value="" /> 

La aplicación funciona correctamente excepto en la página de índice. Tengo en mi web.xml esto:

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

Cuando tengo acceso a http://localhost/myApp/, me sale el siguiente error:

There is no Action mapped for namespace [/] and 
action name [index.jsp] associated with context path [/myApp]. 
- [unknown location] 

Sin embargo, si accedo a http://localhost/myApp/fooAction, ahora no recibo ningún error y funciona perfectamente .

Si cambio la extensión para una extensión no vacía (como "html"), veo la página de índice perfectamente si tengo acceso a http://localhost/myApp/.

Entonces, ¿hay algo mal en lo que estoy haciendo? ¿Por qué recibo este error cuando elimino la extensión? ¿Hay alguna forma posible de no obtenerlo?

Editar: Si pongo una acción en el <welcome-page> el error es el siguiente:

There is no Action mapped for namespace [/] and action name [] 
associated with context path [/myApp]. 
+0

try ' índice' – Jaiwo99

+0

I bel El filtro ieve S2 lo está tratando como una acción. Recuerdo que estaba teniendo el mismo problema cuando quería que '' fuera mi acción y quité la extensión como '.jsp' de la lista y creé un nombre de archivo vacío 'index' –

+0

Probé con una Acción en' 'antes de poner esto aquí, pero desde que leí aquí que no puedo hacer eso directamente (http: // stackoverflow.com/questions/39399/how-can-i-set-the-welcome-page-to-a-struts-action) No puse aquí. Me aparece un error diferente, lo pondré en la pregunta. – Pigueiras

Respuesta

8

que estaba teniendo mismo tema en una de las aplicaciones en las que necesito para llamar a una acción sobre la carga de la página en lugar de index.jsp o welcom.jsp en <welcome-page>. Hice los siguientes pasos

Coloqué la siguiente entrada en mi web.xml.

<welcome-file-list> 
      <welcome-file>index</welcome-file> 
</welcome-file-list> 

creé un archivo vacío con el nombre index en mi carpeta de aplicación Web y, finalmente, coloca la siguiente entrada en mi archivo struts.xml

<action name="index" class="welcomeAction"> 
    <result>/ab.jsp</result> 
</action> 

Así que en este caso cuando me estaba pegando este URL www.myapp.com/myApp, su acción de índice de llamadas de Struts2 y pude hacer todo el trabajo de inicio para mi página de bienvenida.

2

Tuve el mismo problema pero lo resolví !!!!
Si el uso de u

<constant name="struts.action.extension" value=""/> 

en struts.xml
a continuación, poner archivo de bienvenida como

<welcome-file>index.jsp</welcome-file> 

en web.xml
y dar a la acción de la siguiente manera struts.xml

<package name="default" extends="struts-default"> 
    <action name="index.jsp"> 
     <result>WEB-INF/login.jsp</result> 
    </action> 
</package> 
Cuestiones relacionadas