因为刚开始学习Struts2.今天在eclipse上面初建了一个简单的struts2项目,但是运行的时候Action出错:
There is no Action mapped for namespace / and action name ..
然后上网到处查问题的原因.
问题分析有如下几种情况:(几乎都是因为初学者粗心大意,再加上struts一些细节的扰乱)
1:首先确认struts.xml 文件是否在src目录下;很多时候struts.xml放在WEB-INF下而不是还是放在classes下.
2:检查struts.xml文件的语法是否正确:(下面引用 Can ' s blogs)
如果第一步正确的话那就可能是struts.xml文件的问题:
<?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>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
那么就只有是红字的部分写错了 查看你的是否吧struts-default中间的“-”错写成了struts=default;或者struts写成sturts等拼写错误.
3:还有人其他一切正常却因为把配置文件struts.xml错误的存储为struts2.xml.
4:但是我遇到的问题都不是上面的问题,因为我用myeclipse开发直接部署到tomcat下面,无论我怎么尝试修改上面的配置,甚至反复检查代码,结果都出错,结果发现myeclipse在部署的时候没有把struts.xml配置到tomcat到webapps的对应项目下面,然后手工添加了struts.xml问题解决,运行一切ok!
希望能解决大家都一些问题.同时也希望有同胞能发现更多的错误原因用来共享.