一新来同事看代码的时候发现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 中再配置是无效的。
经过测试得出这个结论,还望指教。
分享到:
相关推荐
专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用) struts.multipart.saveDir The directory to use for storing uploaded files 设置存储上传...
该属性指定Struts 2文件上传中整个请求内容允许的最大字节数. struts.custom.properties 该属性指定Struts 2应用加载用户自定义的属性文件,该自定义属性文件指定的属性不会覆盖struts.properties文件中指定的属性....
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.如何...
3、修改 WEB-INF\classes 目录下struts.xml 文件,加上: <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <constant name="struts.convention.action.mapallmatches" value="true"/> 这...
拦截器:web.xml 配置拦截器<filter> struts2.5的filter-class 与struts2.5以前版本有所不同 <!-- 浏览器访问 http://localhost:8080/MyWeb/helloworld --> --> <?xml version="1.0" encoding=...
该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性值,读者应该明白为什么Struts 2框架默认加载struts.xml文件了。 struts.objectFactory 该属性指定Struts 2中的action由哪个容器...
struts2实现的学生信息管理系统 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...
配置常量,可以改变Struts 2框架的一些行为 name属性表示常量名称,value属性表示常量值 package元素: 包的作用:简化维护工作,提高重用性 包可以“继承”已定义的包,并可以添加自己包的配置 name属性为必须去且...
2.struts-config.xml文件配置 <form-bean name="actionForm" type="org.apache.struts.action.DynaActionForm"> <form-property name = "filedata" type = "org.apache.struts.upload.FormFile" /> ...
1、login.jsp的form表格里的action是在struts.xml中<action name="login" class="check.action.LoginAction">的name的属性的名字后面加上.action 例如:<form action="login.action" method="post"> 2、web.xml中 ...
-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --> <include file="struts-default.xml"> <!-- package提供了将多个Action组织为一个模块的方式 ...
6.配置web.xml文件。代码为: <?xml version="1.0" encoding="UTF-8"?> xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
struts2.0扫盲文档2加入struts.xml配置文件(自己建) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...
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+...
3、配置struts-config.xml文件;建立action、formbean; 改配置可以自动生成,使用eclipse进行自动生成,在建立时,如下图,可直接生成对应的action类和formbean类。 1 <?xml version="1.0" encoding="UTF-8"?> 2 ...
25、abstract 的 method 是否可同时是 static,是否可同时是 native,是否可同时是 synchronized? ................................................................................................................
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 ...
然后在src目录下新建一个struts.xml文件,内容如下: <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> ...