structs2访问action报错
在首次进行struts的开发中,初学者经常会遇到HTTP Status 404 There is no Action mapped for namespace / and action name 的问题,出现上述的问题,大概从以下几个方面进行检查:
(1)首先,检查struts.xml的位置,一般在eclipse或者myeclipse下放在src目录下,在运行后,我们可以看到,我们在src中 所写的类,struts.xml,在web-inf下的classes下都能找到。其中类都已经编译通过变成了.class文件。
(2)其次注意路径的问题,仔细检查是不是在相对路径方面除了问题。
(3)检查拼写,这个问题一定要避免放生,一些小的错误比如说把struts.xml写成了sturts.xml或者写成了struts2.xml,单词的拼写错误,这些都会导致上述错误。一定不要打成struct2!!吃过这个亏,还有需要extends标签中的属性写成struts-default,不能写错,写错为structs-default过
(4)还有一点就是设置struts内部 属性时
<package name="hellodemo" extends="structs-default" namespace="/">
<!-- name写访问名称 -->
<action name="hello" class="com.struct_stu.action.HelloAction">
<!-- 配置方法不同返回值,让其跳转到不同页面 -->
<result name="ok">/hello.jsp</result>
</action>
</package>
要注意namespace属性! 如果你的目录为 WEBROOT---web---message----message.jsp
那么要注意 你的package包属性 namespace 必须与你的 目录一致 /web/message (From 调用action 在message.jsp中)附加上message中From
<s:form action="savemessage.action" >
<s:hidden name="messageStatu.id" value="1"></s:hidden>
<s:textarea name="content" label="留言内容:" rows="5"></s:textarea>
<s:submit value="提交"></s:submit>
</s:form>
请注意~~~ action="savemessage.action"
以及 namespace="/web/message"
附加上 调用前后URL变化>>>
前:http://localhost:8080/edaiyan/web/message/message.jsp
后:http://localhost:8080/edaiyan/web/message/savemessage.action
最后成功访问: