问题
I have a problem if I remove the .action
extension inside my Struts2 application. I put this in my struts.xml
:
<constant
name="struts.action.extension"
value="" />
The application works correctly except in the index page. I have in my web.xml
this:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
When I access to http://localhost/myApp/
, I get the following error:
There is no Action mapped for namespace [/] and
action name [index.jsp] associated with context path [/myApp].
- [unknown location]
However if I access to http://localhost/myApp/fooAction
, I'm not getting any errors and works perfectly.
If I change the extension for a non empty extension (like "html"
), I see the index page perfectly if I access to http://localhost/myApp/
.
So then, is there something wrong in what I'm doing? Why am I getting this error when I remove extension? Is there any posible way of not getting it?
Edit: If I put an action in the <welcome-page>
the error is the following:
There is no Action mapped for namespace [/] and action name []
associated with context path [/myApp].
回答1:
I was having same issue in one of the application where i need to call an Action on page load in place of index.jsp
or welcom.jsp
in <welcome-page>
.I did the following steps
Placed the following entry in my web.xml.
<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>
I created an empty file with name index
in my web-app folder and finally placed the following entry in my struts.xml file
<action name="index" class="welcomeAction">
<result>/ab.jsp</result>
</action>
So in this case when i was hitting this URL www.myapp.com/myApp
,its calling index action of Struts2 and i was able to do all init work for my welcome page.
回答2:
I had same issue, but solved!!!!
If u use
<constant name="struts.action.extension" value=""/>
in struts.xml
then put welcome file as
<welcome-file>index.jsp</welcome-file>
in web.xml
and give the action in struts.xml as follows
<package name="default" extends="struts-default">
<action name="index.jsp">
<result>WEB-INF/login.jsp</result>
</action>
</package>
来源:https://stackoverflow.com/questions/12087779/why-welcome-file-list-is-not-working-if-i-remove-struts2-action-extension