欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-04 12:05:06
问题背景: 在做Struts2学习的页面访问时,配置了如下的两个返回结果视图:

问题背景:

在做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 []。

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

 

具体修改措施:

在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>

 

最终问题得到解决:

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

 

 参考博文: