-2

Struts Problem Report

Struts has detected an unhandled exception:

Messages:
There is no Action mapped for action name elecMenuAction_menuHome.

Stacktraces

There is no Action mapped for action name elecMenuAction_menuHome. - [unknown location]

com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185) org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63) org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39) com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:500) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)

...

My struts.xml:

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <!-- dev model -->
    <constant name="struts.devMode" value="true"></constant>
    <!-- ui  -->
    <constant name="struts.ui.theme" value="simple"></constant>
    <!-- .do-->
    <constant name="struts.action.extension" value="do"></constant>

    <!-- system management -->
    <package name="system" namespace="/system" extends="struts-default">
        <!-- test -->
        <action name="elecTextAction_*" class="elecTextAction" method="{1}">
            <result name="save">/system/textAdd.jsp</result>
        </action>

        <action name="elecMenuAction_*" class="elecMenuAction" method="{1}">
            <result name="menuHome">/WEB-INF/page/menu/home.jsp</result>
        </action>  // I add this action then report error.
    </package>
</struts>

In my ElecMenuAction.java:

@SuppressWarnings("serial")
@Controller("elecMenuAction")
@Scope(value = "prototype")
public class ElecMenuAction extends BaseAction<MenuForm> {

    MenuForm menuForm = this.getModel();

    public String menuHome(MenuForm menuForm) {

        return "menuHome";
    }

}

In my menu/index.jsp:

<form action="${pageContext.request.contextPath}/menu/elecMenuAction_menuHome.do" method="post" target="_top">

My directory is below:

three-blocks
  • 353
  • 1
  • 4
  • 20

1 Answers1

0

I saw your package config in struts.xml is this:

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

But your form action is like this below, why is menu but system:

<form action="${pageContext.request.contextPath}/menu/elecMenuAction_menuHome.do" method="post" target="_top">

You should change the action to :

action="${pageContext.request.contextPath}/system/elecMenuAction_menuHome.do"

That's why Action mapped can not find reason.

aircraft
  • 25,146
  • 28
  • 91
  • 166