问题
许多Struts 2开发人员声称他们已经正确配置了操作类,但是在访问操作类时却遇到了操作错误消息。
查看两种模式下的错误消息:
1.“ struts.devMode”已关闭(默认)
HTTP Status 404 -
There is no Action mapped for namespace / and action name "yourActionName".
type Status report
message There is no Action mapped for namespace / and action name "yourActionName".
description The requested resource
(There is no Action mapped for namespace / and action name "yourActionName".) is not available.
2.打开struts.devMode
在struts.xml
<constant name="struts.devMode" value="true" />
Struts Problem Report
Struts has detected an unhandled exception:
Messages:
There is no Action mapped for namespace / and action name "yourActionName".
Stacktraces
There is no Action mapped for namespace / and action name "yourActionName". - [unknown location]
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:178)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
...
You are seeing this page because development mode is enabled. Development mode, or devMode,
enables extra debugging behaviors and reports to assist developers. To disable this mode, set:
struts.devMode=false
in your WEB-INF/classes/struts.properties file.
解
上面的错误消息表示操作类不可用,这意味着您在操作类配置中做错了什么,可能是名称空间或拼写错误,请仔细检查名称。
这是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>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="abcAction"
class="com.mkyong.common.action.AbcAction" >
<result name="success">pages/abc.jsp</result>
</action>
</package>
</struts>
假设项目的根上下文是“ Struts2Example ”,那么您可以通过此URL访问上述操作–
http:// localhost:8080 / Struts2Example / abcAction.action
标签: struts2
翻译自: https://mkyong.com/struts2/there-is-no-action-mapped-for-namespace-and-action-name-youractionname/