struts.enable.DynamicMethodInvocation = true 动态方法调用
2011-08-01 11:52
405 查看
default.properties
在Struts 2的核心jar包-struts2-core中,有一个default.properties的默认配置文件。里面配置了一些全局的信息,比如:
struts.enable.DynamicMethodInvocation = true,-动态方法调用,为true时,就可以在struts.xml配置“*”的通配符,来调用action里的方法(下面介绍)
struts.action.extension=action,-action 的后缀名,可以改成.to、.html等等
还有很多,但那个default.properties是不能被更改的。如需要更改里面的配置信息,可以在src根目录下建一个 struts.properties的配置文件,然后重写所要更改的配置信息。
Wildcards通配符
通配符有点类似于变量,但这里的变量是用“*”表示,看看一个例子
<action name="login_*" method="{1}"
class="com.zhang.action.LoginAction">
<result name="success">/pages/success.jsp</result>
<result name="error">/pages/error.jsp</result>
</action>
这里在action的name中通配了一个login_*,它对应映射的是method属性。如果在客户端发生一个这样的请 求:login_init.action、login_show.action等,这时服务器就会自动调用这个action中的init()方法或 show()方法。这里的method="{1}"代表是第一个“*”,如果有多个星号,就要根据顺序来通配{1},{2},{3}....
在如下面多个星号的配置:
<action name=”*/*” method=”{2}”
class=”com.zhang.action.{1}Action”>
<result name=”success”>/pages/success.jsp</result>
<result name=”error”>/pages/error.jsp</result>
</action>
其中第一个“*”映射到具体的某个action类,第二个“*”映射到该类的方法。不过这里要注意的name=”*/*",是相当于客户端要发送如 “Login/init.action”,在地址栏里就变成了/struts/Login/init.action,那服务器到底是会认
/init.action还是/Login/init.action呢。其实服务器默认还是/init.action,如果要使带"/"的action生 效,需要把default.properties中的
struts.enable.SlashesInActionNames = false改为true就可以,其实这样做还挺麻烦的,只要把name写 成"*_*"就不存在斜杠问题了
在Struts 2的核心jar包-struts2-core中,有一个default.properties的默认配置文件。里面配置了一些全局的信息,比如:
struts.enable.DynamicMethodInvocation = true,-动态方法调用,为true时,就可以在struts.xml配置“*”的通配符,来调用action里的方法(下面介绍)
struts.action.extension=action,-action 的后缀名,可以改成.to、.html等等
还有很多,但那个default.properties是不能被更改的。如需要更改里面的配置信息,可以在src根目录下建一个 struts.properties的配置文件,然后重写所要更改的配置信息。
Wildcards通配符
通配符有点类似于变量,但这里的变量是用“*”表示,看看一个例子
<action name="login_*" method="{1}"
class="com.zhang.action.LoginAction">
<result name="success">/pages/success.jsp</result>
<result name="error">/pages/error.jsp</result>
</action>
这里在action的name中通配了一个login_*,它对应映射的是method属性。如果在客户端发生一个这样的请 求:login_init.action、login_show.action等,这时服务器就会自动调用这个action中的init()方法或 show()方法。这里的method="{1}"代表是第一个“*”,如果有多个星号,就要根据顺序来通配{1},{2},{3}....
在如下面多个星号的配置:
<action name=”*/*” method=”{2}”
class=”com.zhang.action.{1}Action”>
<result name=”success”>/pages/success.jsp</result>
<result name=”error”>/pages/error.jsp</result>
</action>
其中第一个“*”映射到具体的某个action类,第二个“*”映射到该类的方法。不过这里要注意的name=”*/*",是相当于客户端要发送如 “Login/init.action”,在地址栏里就变成了/struts/Login/init.action,那服务器到底是会认
/init.action还是/Login/init.action呢。其实服务器默认还是/init.action,如果要使带"/"的action生 效,需要把default.properties中的
struts.enable.SlashesInActionNames = false改为true就可以,其实这样做还挺麻烦的,只要把name写 成"*_*"就不存在斜杠问题了
相关文章推荐
- struts.enable.DynamicMethodInvocation = true 动态方法调用
- struts.enable.DynamicMethodInvocation = true 动态方法调用
- struts.enable.DynamicMethodInvocation = true 动态方法调用(转)
- struts.enable.DynamicMethodInvocation = true 动态方法调用
- struts.enable.DynamicMethodInvocation = true 动态方法调用
- struts.enable.DynamicMethodInvocation = true 动态方法调用
- struts.enable.DynamicMethodInvocation = true 动态方法调用(转)
- 关于struts.enable.DynamicMethodInvocation = true
- struts2中的struts.enable.DynamicMethodInvocation = true 的用法
- DMI(Dynamic Method Invocation) 动态方法调用
- 关于struts.enable.DynamicMethodInvocation = true
- Struts2 ActionMethod 【DMI】(动态方法调用 Dynamic Method Invoke)
- struts.enable.DynamicMethodInvocation起什么作用
- struts2 2.5动态方法调用(DMI) dynamic method invoke 出现不被允许的方法时 Method add for action dynamic is not allowed! - [unknown location]
- struts.enable.DynamicMethodInvocation
- (action动态方法调用)struts通过ActionName!methodName.action,即通过感叹号(即!)访问某Action的方法,确老是报错
- <constantname="struts.enable.DynamicMethodInvocation"value="false"/>作用
- iOS 开发 深入浅出Runtime运行时之方法动态处理(Dynamic Method Resolution)详解
- struts2自主学习之动态方法调用,使用method属性,配置Result,结果类型
- struts的动态方法调用