问题管理-- Struts2配置struts.xml中Action访问报There is no Action mapped for namespace...

Posted 码农的成长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问题管理-- Struts2配置struts.xml中Action访问报There is no Action mapped for namespace...相关的知识,希望对你有一定的参考价值。

问题背景:

在做Struts2学习的页面访问时,配置了如下的两个<action>返回结果视图:

<?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>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <!--开发模式;修改配置文件不需要重启服务器-->
    <!--指的struts.xml,其它的配置文件修改依然还是需要重启-->
    <!--自动重新加载配置文件,不一定会绝对成功。-->
    <constant name="struts.devMode" value="true" />
    <package name="default" namespace="/" extends="struts-default">
        <action name="index" class="cn.yif.action.UserAction" method="execute">
            <!--局部结果视图:在一个Action标签中配置,将<result>作为<action>子元素配置;只有这个Action可以使用-->
            <result name="success" type="dispatcher">
                /success.jsp
            </result>
            <!--success与error都是逻辑视图名称,决定响应哪个结果-->
            <result name="error" type="dispatcher">
                /error.jsp
            </result>
        </action>
        <action name="example" class="cn.yif.action.ExampleAction" method="test">
            <result name="testExample" type="dispatcher">
                /WEB-INF/view/test.jsp
            </result>
        </action>
    </package>
</struts>

在访问第二个结果视图的Action页面时,直接抛出了Messages:

  • There is no Action mapped for namespace [/] and action name [testExample] associated with context path []。

 

具体修改措施:

在web.xml文件中做如下配置,修改默认访问的页面为index.jsp页面,只需修改<welcome-file-list>即可:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <display-name>Struts Blank</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

 

最终问题得到解决:

 

 参考博文:

https://blog.csdn.net/qq_41063141/article/details/88721547

 

以上是关于问题管理-- Struts2配置struts.xml中Action访问报There is no Action mapped for namespace...的主要内容,如果未能解决你的问题,请参考以下文章

问题管理-- Struts2配置struts.xml中Action访问报There is no Action mapped for namespace...

struts2常用配置信息

Struts2配置文件详解

Struts2 XML配置详解

Struts2 XML配置详解

Spring整合Struts2的配置与测试