调试一个小的SSH2项目时,点击jsp页面中的一些action的连接,总是会出现404There is no Action mapped for namespace / and action name的错误,上网找了不少原因发现自己的都不是,很是纳闷,因为自己的配置都是没什么问题的,也没有什么名字之类的拼写错误。找了好久,终于发现了错误之处,这个错误也让人很无语。就是在Struts的xml配置文件中配置action时,如下示例:
<action name="toAddMeal" class = "mealAction" method = "toAddMeal">
<result name="addMeal" >/addMeal.jsp</result>
</action>
action中的name属性后面的引号中最好不要出现空格,因为它把空格也会当做这个action名字中的一部分,比如最好不要写成如下:
<action name=" toAddMeal" class = "mealAction" method = "toAddMeal">
<result name="addMeal" >/addMeal.jsp</result>
</action>
不然在你的jsp页面中的一些链接比如<a href = "toAddMeal"></a> ,你点击时就会出现404找不到映射的错误,因为名字不一样;
当然链接中的action名字有空格与每空格一样,<a href = " toAddMeal"></a> 与 <a href = "toAddMeal"></a>一样,不会将空格作为action名字中一部分