`
lzh309
  • 浏览: 6264 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

struts2配置文件struts.xml配置action的method无效

阅读更多
一新来同事看代码的时候发现struts.xml 中配置的method属性无效,

struts.xml 配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<constant name="struts.enable.DynamicMethodInvocation" value="false" />
	<constant name="struts.devMode" value="false" />
	<constant name="struts.i18n.encoding" value="UTF-8"/>
	<constant name="struts.serve.static.browserCache" value="false"/>
	
	<package name="default" namespace="/" extends="struts-default">
	   <action name="custom" class="customAction" method="custom">
	    	<result name="success">/WEB-INF/view/index.jsp</result>
	    	<result name="custom">/WEB-INF/view/custom.jsp</result>
	   </action>
	</package>
	
	
</struts>


java代码:
public class customAction{
	
	public String index(){
		try {
			System.out.println("index");
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "success";
	}
	
	public String custom(){
		System.out.println("custom");
		return "custom";
	}
	
}


访问URL:http://localhost:6060/custom/custom!index.do,结果却能访问到index方法。
按理来说,在struts.xml中配置了struts.enable.DynamicMethodInvocation=false、method=custom,通过上面的url是访问不到index方法。

当时我也不得其解,之后查找代码终于发现问题所在。

问题原因:
在Struts 2的核心jar包-struts2-core中,有一个default.properties的默认配置文件,default.properties是不能被更改的。如需要更改里面的配置信息,可以在src根目录下建一个 struts.properties的配置文件,然后重写所要更改的配置信息。经查看struts.properties中中配置了struts.enable.DynamicMethodInvocation=true。

结论:如果相关属性在这个文件里面设置了属性,那么在struts.xml 中再配置是无效的。

经过测试得出这个结论,还望指教。
分享到:
评论
1 楼 lzh309 2014-05-08  

相关推荐

    ·Struts2配置文件介绍 超级详细

    - **struts.xml**:这是Struts2框架的核心配置文件,定义了应用程序中的Action映射、结果类型以及拦截器等关键配置信息。它主要包含以下几个元素: - `package`:表示一个包,其中可以包含多个Action。 - `action`...

    struts.xml和applicationContext.xml、web.xml的配置

    总结来说,`struts.xml` 负责Struts2的Action配置,`applicationContext.xml` 管理Spring的Bean和依赖,而`web.xml` 定义了Web应用的基本结构和组件。这三个文件共同协作,构建了一个功能完善的Java Web应用,实现了...

    struts.xml和struts.properties配置详解

    `struts.xml`是Struts2的核心配置文件,它负责定义动作(Action)、结果(Result)、拦截器(Interceptor)等核心元素,控制着应用程序的流程。以下是一些主要的配置元素: 1. ****: 定义一个包,可以包含多个...

    Struts2配置精要之struts.xml( global和default的配置)

    在Struts2中,`struts.xml`是核心配置文件,它定义了应用的架构,包括动作映射、结果类型、拦截器和全局配置等。这篇博客主要探讨的是`struts.xml`中的`global`和`default`配置。 1. **全局配置(Global ...

    struts.xml配置文件详解

    通过对`struts.xml`配置文件的详细解析,我们可以看到Struts 2框架的强大之处在于其高度可配置性。开发者可以通过简单的XML配置即可实现复杂的功能需求。了解并掌握这些配置项对于高效开发基于Struts 2的应用程序至...

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用) struts.multipart.saveDir The directory to use for storing uploaded files 设置存储上传...

    struts2的struts.properties配置文件详解

    如果设置为true,Struts2将加载XML配置文件;否则,不加载。 5. struts.continuations.package:这是一个包名,包含使用Rife continuations的actions。 6. struts.custom.i18n.resources:这是一个附加的国际化...

    struts2配置文件

    Struts2可以与Spring框架无缝集成,通过`struts-plugin.xml`配置文件将Action实例交由Spring管理,实现依赖注入。 **五、Struts2配置的最佳实践** 1. 尽可能减少对DMI的使用,以提高安全性。 2. 使用包结构组织...

    Struts2中struts_xml的Action配置详解

    Struts2作为一款强大的MVC框架,其核心配置文件`struts.xml`在应用程序中扮演着至关重要的角色。本文将深入解析`struts.xml`中的Action配置,帮助开发者更好地理解和运用这一关键组件。 首先,Action配置是Struts2...

    Struts2.5版本struts.xml与web.xml配置的更改方法

    在Struts2框架中,配置文件`struts.xml`和`web.xml`是核心部分,它们定义了应用程序的行为和路由规则。随着版本的更新,配置方式也会有所改变。以下是Struts2.5版本中`struts.xml`和`web.xml`配置的更改方法: **1....

    struts.xml(struts2配置)

    `struts.xml`是Struts2框架的核心配置文件,用于定义应用程序的行为、控制器、动作映射、结果类型和其他关键组件。下面我们将深入探讨`struts.xml`的各个方面。 1. **配置文件结构** `struts.xml`文件通常位于项目...

    Struts2手动搭建所有的jar包及相应的struts.xml和web.xml

    接下来是配置`struts.xml`文件,这是Struts2的核心配置文件,它定义了Action、结果类型、拦截器栈等。一个基本的`struts.xml`文件可能如下所示: ```xml &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE struts...

    Struts2最新漏洞升级2.3.32版本

    3、修改 WEB-INF\classes 目录下struts.xml 文件,加上: &lt;constant name="struts.enable.DynamicMethodInvocation" value="true"/&gt; &lt;constant name="struts.convention.action.mapallmatches" value="true"/&gt; 这...

    struts.xml文件详解示例代码

    Struts.xml文件是Apache Struts 2框架的核心配置文件,用于定义应用的MVC(Model-View-Controller)架构和动作映射。它为应用程序提供了一种声明式的方式来配置Struts2的行为,使得开发者能够控制请求如何被处理,...

    struts.xml常用配置解析

    Struts.xml配置文件是Struts2框架的核心配置文件,它定义了应用的行为和结构。本文主要解析了其中两个重要的配置元素:`&lt;include&gt;`标签和Action的别名。 首先,我们来看 `&lt;include&gt;` 标签的使用。当Struts2的应用中...

    Struts2-core-2.1.8.1.jar

    它通过Action类来处理请求,并利用配置文件(如struts.xml)来定义请求和响应的映射。Action类是业务逻辑的入口点,可以执行数据库操作、计算或其他复杂任务,然后将结果返回给视图层进行展示。 Struts2的核心特性...

    struts配置的文件 连接池 mysql等配置文件

    1. **Struts2核心配置文件**:主要由`struts.xml`构成,它是整个Struts2应用的主配置文件。在这个文件中,你可以定义Action类、Action的映射、结果类型、拦截器栈等。例如: ```xml ...

    Struts2_0300_Action.zip_action

    1. **XML配置**: 在Struts2的配置文件(struts.xml或struts.properties)中,我们需要为每个Action类指定一个唯一的namespace和actionName。例如: ```xml &lt;package name="default" namespace="/" extends="struts...

Global site tag (gtag.js) - Google Analytics