• struts2 2.5.16 通配符方式调用action中的方法报404


    1、问题描述

    在struts.xml中配置用通配符方式调用action中的add()方法,访问 http://localhost:8080/Struts2Demo/helloworld_add.action时,出现了这个熟悉的错误:

    HTTP Status 404 – Not Found


    Type Status Report

    Message There is no Action mapped for namespace [/] and action name [helloworld_add] associated with context path [/Struts2Demo].

    Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.


    Apache Tomcat/8.5.35

    2、相关代码

    struts.xml中部分相关代码

    <package name="default" namespace="/" extends="struts-default">
            <action name="helloworld_*" method="{1}" class="com.icheny.action.HelloWorldAction">
                <result>/result.jsp</result>
                <result name="add">/{1}.jsp</result>
                <result name="update">/{1}.jsp</result>
            </action>
    </package>

    HelloWorldAction.java中部分相关代码

        public String add()
        {
            return "add";
        }
    
        public String update()
        {
            return "update";
        }

    3、原因

      由于struts2 2.5版本的安全度提高了一个台阶,通配符禁止使用,所有不安全的访问都必须要在struts.xml中声明允许。我用的是2.5.16版本的struts,因此出现了这个错误。

    4、解决方案

      在package中添加属性:strict-method-invocation="false"

      修改之后的struts.xml中的package部分代码为:

    <package name="default" namespace="/" extends="struts-default" strict-method-invocation="false">
            <action name="helloworld_*" method="{1}" class="com.icheny.action.HelloWorldAction">
                <result>/result.jsp</result>
                <result name="add">/{1}.jsp</result>
                <result name="update">/{1}.jsp</result>
            </action>
    </package>

      再次访问http://localhost:8080/Struts2Demo/helloworld_add.action,正常跳转:

              

  • 相关阅读:
    C#编程读写文本
    机械手臂四轴
    机械手臂姿态
    Val编程任务编程
    Val编程系统架构
    GeoGebra一种开源平面画图软件的使用
    Val编程速度因子
    Val编程val系列编程思想
    怎么让 dom4j 添加的节点 在最前面 而不是最后面
    LayoutInflater的inflate函数用法详解
  • 原文地址:https://www.cnblogs.com/iCheny/p/10963050.html
Copyright © 2020-2023  润新知