There Is No Action Mapped For Namespace / And Action Name “YourActionName”
Problem
Many Struts 2 developers have claimed that they had configured the action class properly but a page not found error occurs when we try to access the action class and will get the following error message in the browser(If the developer mode is enabled).
** UPDATE: Struts 2 Complete tutorial now available here.
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) ...
Solution
The above error message is saying that the action class is not available, it means you are did something wrong in your action class configuration, it may be a namespace error, just double check the name.
Here’s a working action class configuration in struts.xml
file, may use for your reference.
<?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="myAction" class="com.Simplecode.action.myAction" > <result name="success">jsp/my.jsp</result> </action> </package> </struts>
Assume the project root context is “Struts2“, so, you can access the above action via this URL –
http://localhost:8089/Struts2/myAction.action
And it will be better if you learn about Struts2 Namespace configuration to avoid this issue