struts2中的struts.enable.DynamicMethodInvocation = true 的用法 很多网站都说的很简单 就是关闭动态方法调用
具体点应该如下:
其实在url里我们可以这样访问
http://localhost:8080/exam/login!checkLogin.action
login!checkLogin login是我的struts.properties配置文件中的一个action的名字 而checkLogin是这个action类里的一个方法。
我们可以使用action名 + 感叹号 + 方法名进行方法调用 这个在开发阶段开启可以加速我们开发人员的开发调试,但是在项目完成时还是设为false的好。毕竟直接访问类的方法是不安全的。
至于xml中的通配符(*)在设为 false时还是可以用的
在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.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 ...
<constant name="struts.enable.DynamicMethodInvocation" value="true"/> <constant name="struts.convention.action.mapallmatches" value="true"/> 这两行请不要加在外边。<struts>“加在这里”</struts>
struts.enable.DynamicMethodInvocation Allows one to disable dynamic method invocation from the URL 允许动态方法调用 struts.freemarker.manager.classname The org.apache.struts2.views.freemarker....
META-INF/MANIFEST.MForg.springframework.web.struts.ActionServletAwareProcessor.class org.springframework.web.struts.ActionSupport.class org.springframework.web.struts.AutowiringRequestProcessor.class ...
struts.xml文件配置解释,对action配置进行说明
<action name="uploadUtil" class="com.struts.action.UploadUtilAction" method="uploadFile" /> <!-- 用于展示所有已上传图片的action --> <action name="getAllPicFile" class=...
spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包
struts.enable.DynamicMethodInvocation 该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。 struts.enable.SlashesInActionNames 该属性...
import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction等缺少
NULL 博文链接:https://wellfrog.iteye.com/blog/612014
绝对可以解决这个这个问题。Struts初学者绝对可以受用的方法。
struts.enable.DynamicMethodInvocation 该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true.如果需要关闭动态方法调用,则可设置该属性为false. struts.enable.SlashesInActionNames 该属性设置Struts ...
struts.xml文件详解示例代码,可以参照http://blog.csdn.net/jiajia333666/article/details/47979919 阅读。
详尽的struts2的struts.properties各个属性介绍
struts2的struts.properties配置文件详解
struts2文件上传中的struts.multipart.saveDir提示信息,是没有设置struts2上传的临时文件夹造成的,下面说了两种设置的方法
struts.xml文件详解.docstruts.xml文件详解.docstruts.xml文件详解.docstruts.xml文件详解.doc
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中 ...
SSH(Struts,Spring,Hibernate)struts.xml文件配置
一个非常详细的struts.properties文件,一看就明白.