【问题标题】:There is no Action mapped for namespace / and action name HelloWorld没有为命名空间 / 和动作名称 HelloWorld 映射的动作
【发布时间】:2022-04-04 06:05:50
【问题描述】:

我正在尝试运行一个简单的 struts 2 HelloWorld 应用程序,当我运行它时,它说“没有为命名空间/和动作名称 HelloWorld 映射的动作。有人可以帮忙。

WARNING: Could not find action or result
There is no Action mapped for namespace / and action name HelloWorld. - [unknown location]
    at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189)
    at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
    at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
    at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)

【问题讨论】:

  • 显示你的struts-config.xml,可能找不到动作
  • 你在struts文件中映射了动作名称吗?
  • /success.jsp

标签: java struts2


【解决方案1】:

->检查动作是否映射到struts文件中 ->jsp 中的动作名称,struts.xml 中的动作名称和动作类的名称都完全相同 ->struts-config.xml 中的动作映射是否在某个包下,然后在 url 中包含该包(例如,提交表单时,url 必须包含包名)

【讨论】:

  • 这里是struts.xml和web.xml文件
  • /success.jsp
  • Struts2 登录struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2/*Login.jsp
【解决方案2】:

更常见的是,即使struts.xml 没有任何问题,struts 的动作名称也不会出错,问题是jsp 文件中缺少标记库定义。

【讨论】:

    【解决方案3】:

    也许你在 struts.xml 文件中犯了一个错误。有几种方法可以配置这个文件;这是一个例子:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
        <package name="default" extends="struts-default">
            <action name="helloWorld" class="controller.HelloWorld">
                <result name="success">/HelloWorld.jsp</result>
    
            </action>
        </package>
    </struts>
    

    如果您以这种方式执行此操作,请确保您必须仅通过操作名称从 jsp 调用操作;你不需要写.action:那会导致错误。

    这可以回答你的问题。

    【讨论】:

      猜你喜欢
      • 2013-11-01
      • 1970-01-01
      • 2011-04-14
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      相关资源
      最近更新 更多