一新来同事看代码的时候发现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 中再配置是无效的。
经过测试得出这个结论,还望指教。
分享到:
相关推荐
- **struts.xml**:这是Struts2框架的核心配置文件,定义了应用程序中的Action映射、结果类型以及拦截器等关键配置信息。它主要包含以下几个元素: - `package`:表示一个包,其中可以包含多个Action。 - `action`...
总结来说,`struts.xml` 负责Struts2的Action配置,`applicationContext.xml` 管理Spring的Bean和依赖,而`web.xml` 定义了Web应用的基本结构和组件。这三个文件共同协作,构建了一个功能完善的Java Web应用,实现了...
`struts.xml`是Struts2的核心配置文件,它负责定义动作(Action)、结果(Result)、拦截器(Interceptor)等核心元素,控制着应用程序的流程。以下是一些主要的配置元素: 1. ****: 定义一个包,可以包含多个...
在Struts2中,`struts.xml`是核心配置文件,它定义了应用的架构,包括动作映射、结果类型、拦截器和全局配置等。这篇博客主要探讨的是`struts.xml`中的`global`和`default`配置。 1. **全局配置(Global ...
通过对`struts.xml`配置文件的详细解析,我们可以看到Struts 2框架的强大之处在于其高度可配置性。开发者可以通过简单的XML配置即可实现复杂的功能需求。了解并掌握这些配置项对于高效开发基于Struts 2的应用程序至...
专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用) struts.multipart.saveDir The directory to use for storing uploaded files 设置存储上传...
如果设置为true,Struts2将加载XML配置文件;否则,不加载。 5. struts.continuations.package:这是一个包名,包含使用Rife continuations的actions。 6. struts.custom.i18n.resources:这是一个附加的国际化...
Struts2可以与Spring框架无缝集成,通过`struts-plugin.xml`配置文件将Action实例交由Spring管理,实现依赖注入。 **五、Struts2配置的最佳实践** 1. 尽可能减少对DMI的使用,以提高安全性。 2. 使用包结构组织...
Struts2作为一款强大的MVC框架,其核心配置文件`struts.xml`在应用程序中扮演着至关重要的角色。本文将深入解析`struts.xml`中的Action配置,帮助开发者更好地理解和运用这一关键组件。 首先,Action配置是Struts2...
在Struts2框架中,配置文件`struts.xml`和`web.xml`是核心部分,它们定义了应用程序的行为和路由规则。随着版本的更新,配置方式也会有所改变。以下是Struts2.5版本中`struts.xml`和`web.xml`配置的更改方法: **1....
`struts.xml`是Struts2框架的核心配置文件,用于定义应用程序的行为、控制器、动作映射、结果类型和其他关键组件。下面我们将深入探讨`struts.xml`的各个方面。 1. **配置文件结构** `struts.xml`文件通常位于项目...
接下来是配置`struts.xml`文件,这是Struts2的核心配置文件,它定义了Action、结果类型、拦截器栈等。一个基本的`struts.xml`文件可能如下所示: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts...
3、修改 WEB-INF\classes 目录下struts.xml 文件,加上: <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <constant name="struts.convention.action.mapallmatches" value="true"/> 这...
Struts.xml文件是Apache Struts 2框架的核心配置文件,用于定义应用的MVC(Model-View-Controller)架构和动作映射。它为应用程序提供了一种声明式的方式来配置Struts2的行为,使得开发者能够控制请求如何被处理,...
Struts.xml配置文件是Struts2框架的核心配置文件,它定义了应用的行为和结构。本文主要解析了其中两个重要的配置元素:`<include>`标签和Action的别名。 首先,我们来看 `<include>` 标签的使用。当Struts2的应用中...
它通过Action类来处理请求,并利用配置文件(如struts.xml)来定义请求和响应的映射。Action类是业务逻辑的入口点,可以执行数据库操作、计算或其他复杂任务,然后将结果返回给视图层进行展示。 Struts2的核心特性...
1. **Struts2核心配置文件**:主要由`struts.xml`构成,它是整个Struts2应用的主配置文件。在这个文件中,你可以定义Action类、Action的映射、结果类型、拦截器栈等。例如: ```xml ...
1. **XML配置**: 在Struts2的配置文件(struts.xml或struts.properties)中,我们需要为每个Action类指定一个唯一的namespace和actionName。例如: ```xml <package name="default" namespace="/" extends="struts...