您的位置:首页 > 理论基础 > 计算机网络

Struts2框架中HTTP Status 404 There is no Action mapped for namespace / and action name

2016-03-30 11:35 489 查看
在首次进行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,单词的拼写错误,这些都会导致上述错误。

(4)还有一点就是设置struts内部 属性时

[xhtml] view
plain copy

print?

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

<action name="savemessage" class="com.edaiyan.action.MessageAction">

<result name="save">/web/message/messageList.jsp</result>

</action>

</package>

要注意namespace命名空间属性!

附加上 调用前后URL变化》》

前:http://localhost:8080/edaiyan/web/message/message.jsp

后:http://localhost:8080/edaiyan/web/message/savemessage.action

status.xml代码

<span style="font-size:18px;"><span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- package表示包名用来管理action其意义和java的包是一样的 -->
<!-- name 是包名(任意取) -->
<!-- namespace表示命名空间 入:namespace="/demo"那么访问过此命名空间下的action前面就要加上/demo -->
<!-- extends继承,struts-default表示srturts提供的核心action,只有继承struts-defalut的action才能使用struts2提供的功能模块 -->
<package name="lrk" namespace="/" extends="struts-default">
<!-- action业务控制器用于注册业务控制器的组件 -->
<!-- name表示action的名字(任意取),浏览器通过这个来访问action -->
<!-- class表示action的类路径(完整的包名点类名) -->
<!-- method表示浏览器跳到这个action内部调用里面的那个方法 -->
<action name="hello" class="com.lrk.structs2.Struts"
method="hello">
<!-- result 输出组件用于转发,重定向 输出 -->
<result name="ok">/index.jsp</result>
</action>
</package>
</struts></span><span style="font-size: 14px;">
</span></span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: