Struts Hello world example : There is no Action mapped for namespace [/] and action name error

只谈情不闲聊 提交于 2019-11-27 17:51:57

问题


i am absolute beginner to Struts2. I am tying to follow tutorials on struts web site. i followed this tutorial. i have some trouble with it. i created dynamic web project on eclipse. Then i followed the tutorial. However when i run the example i get the following error.

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

i have the following directory structure

And my struts.xml file is

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

  <constant name="struts.devMode" value="true" />

  <package name="basicstruts2" extends="struts-default" namespace="/">

  <action name="index">
    <result>/index.jsp</result>
  </action>

  <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
    <result name="SUCCESS">/HelloWorld.jsp</result>
  </action>

</package>

</struts>

thanks for your responses.


回答1:


The struts.xml configuration file needs to be on the classpath (as opposed to in WEB-INF).

The linked tutorial assumes a Maven build and states the struts.xml file should go in src/main/resources, which will be included in the classpath in Maven builds. Since you're ignoring that part, you'll likely want to put it in the root of your source directory.




回答2:


You have to create a classes/ folder under WEB-INF/ and put in your struts.xml file!




回答3:


Right click the project. Go to properties deployment build path and add all .jar files to /WEB-INF/lib.
Then you shouldn't get this error.

struts.xml should be located under directory: src/struts.xml..

And WEB-INF/web.xml you we need to configure the struts based on filter..




回答4:


I got the same error and got solution looking at tomcat log when restarting : doctype were missing in struts.xml

so I added

<xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

now it works !




回答5:


I solved the issue by adding default-action-ref tag, for example,

<default-action-ref name="home" />

after package tag

in struts.xml

<package name="user" namespace="/" extends="struts-default">

<default-action-ref name="upload" />



回答6:


I had the same issue and I was facing it because of not mentioning the namespace correctly in struts.xml.

I added the following snippet in the web.xml :

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

and also making the namespace as "/" default... Hope it answers your query..




回答7:


In my case I had to rename Struts.xml ---> struts.xml



来源:https://stackoverflow.com/questions/8991597/struts-hello-world-example-there-is-no-action-mapped-for-namespace-and-act

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!