struts2配置文件struts.xml配置action的method无效_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > struts2配置文件struts.xml配置action的method无效

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

 2014/5/8 15:12:42  lzh309  程序员俱乐部  我要评论(0)
  • 摘要:一新来同事看代码的时候发现struts.xml中配置的method属性无效,struts.xml配置如下:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><
  • 标签:配置文件 文件 配置 struts XML
一新来同事看代码的时候发现struts.xml 中配置的method属性无效,

struts.xml 配置如下:
class="java" name="code">
<?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 中再配置是无效的。

经过测试得出这个结论,还望指教。
发表评论
用户名: 匿名