`
lzh309
  • 浏览: 6133 次
  • 性别: 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  

相关推荐

    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 2文件上传中整个请求内容允许的最大字节数. struts.custom.properties 该属性指定Struts 2应用加载用户自定义的属性文件,该自定义属性文件指定的属性不会覆盖struts.properties文件中指定的属性....

    Struts2入门教程(全新完整版)

    3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何...

    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; 这...

    struts2配置2.5版

    拦截器:web.xml 配置拦截器&lt;filter&gt; struts2.5的filter-class 与struts2.5以前版本有所不同 &lt;!-- 浏览器访问 http://localhost:8080/MyWeb/helloworld --&gt; --&gt; &lt;?xml version="1.0" encoding=...

    Struts2\constant应用

    该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性值,读者应该明白为什么Struts 2框架默认加载struts.xml文件了。 struts.objectFactory 该属性指定Struts 2中的action由哪个容器...

    struts2实例 学生信息管理系统

    struts2实现的学生信息管理系统 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

    Struts2的struts.xml配置详细介绍

    配置常量,可以改变Struts 2框架的一些行为 name属性表示常量名称,value属性表示常量值 package元素: 包的作用:简化维护工作,提高重用性 包可以“继承”已定义的包,并可以添加自己包的配置 name属性为必须去且...

    struts1.x上传实例

    2.struts-config.xml文件配置 &lt;form-bean name="actionForm" type="org.apache.struts.action.DynaActionForm"&gt; &lt;form-property name = "filedata" type = "org.apache.struts.upload.FormFile" /&gt; ...

    第一个struts程序

    1、login.jsp的form表格里的action是在struts.xml中&lt;action name="login" class="check.action.LoginAction"&gt;的name的属性的名字后面加上.action 例如:&lt;form action="login.action" method="post"&gt; 2、web.xml中 ...

    jfreechar 整合struts2.1.8版本生成线图,饼图,柱形图

    -- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --&gt; &lt;include file="struts-default.xml"&gt; &lt;!-- package提供了将多个Action组织为一个模块的方式 ...

    用Struts2新建一个应用的方法步骤

    6.配置web.xml文件。代码为: &lt;?xml version="1.0" encoding="UTF-8"?&gt; xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...

    struts2.0扫盲文档

    struts2.0扫盲文档2加入struts.xml配置文件(自己建) &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

    struts2.1宝典

    11.Struts2自动查询目录下的action 35 12.一个Action处理多个业务 method 35 13.使用校验模板校验 35 14.校验模板 35 15.文件上传 36 Struts2 UI tabbed pane tab pane datetime tree 37 SSH Struts+Spring+...

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    3、配置struts-config.xml文件;建立action、formbean; 改配置可以自动生成,使用eclipse进行自动生成,在建立时,如下图,可直接生成对应的action类和formbean类。 1 &lt;?xml version="1.0" encoding="UTF-8"?&gt; 2 ...

    Java 面试宝典

    25、abstract 的 method 是否可同时是 static,是否可同时是 native,是否可同时是 synchronized? ................................................................................................................

    java中文乱码解决方案

    struts.devMode=false struts.enable.DynamicMethodInvocation=true struts.i18n.reload=true struts.ui.theme=simple struts.locale=zh_CN struts.i18n.encoding=UTF-8 struts.serve.static.browserCache=false ...

    struts项目搭建

    然后在src目录下新建一个struts.xml文件,内容如下: &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"&gt; &lt;struts&gt; ...

Global site tag (gtag.js) - Google Analytics