zoukankan      html  css  js  c++  java
  • 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,正常跳转:

              

  • 相关阅读:
    EF框架学习
    JS DOM---Chapter 1-4
    ASP.NET页面运行机制以及请求处理流程
    cookie 与 session
    C#中的委托delegate 与 事件 event
    【转】属性与字段的区别
    使用InternalsVisibleTo给assembly添加“友元assembly”
    SQL Server 常用函数和日期操作
    C#中的get 和 set方法
    清晰易懂的Numpy入门教程
  • 原文地址:https://www.cnblogs.com/iCheny/p/10963050.html
Copyright © 2011-2022 走看看