zoukankan      html  css  js  c++  java
  • Struts2.5的DMI与新增的SMI

    1问题

    解决:在使用Struts2.5之后的版本,在DMI(动态方法调用)上,通配符无法正常使用

    2原因

    在使用Struts2.5之后的版本,在DMI(动态方法调用)上,在DMI使用时,是默认被禁用的,默认开启SMI模式,导致通配符*无法正常使用 

    Apache Struts项目的官方解释如下:

    从Struts2.3开始,我们增加了一个开关来控制DMI,我们这样做基于两个原因:

    1. 如果Action的实现是纯POJO方式(既不继承自ActionSupport也不实现Action接口),这种场景下使用DMI可能导致安全问题。

    2. DMI功能跟使用通配符配置Action类的方法有重叠的地方,而通配符配置的方式早在Struts1就有了。


    注:DMI(Dynamic Method Invocation)SMI(Strict Method Invocation)

    3解决

    方式一:暴力关闭

      可以将该包的strict-method-invocation="false"设置为false

    1 <package name="my" extends="struts-default" namespace="/my" strict-method-invocation="false">
    2         <action name="stu_*" class="com.czd.action.tryAction" method="{1}">
    3             <result name="a">/page/loginok.jsp</result>
    4             <result name="b">/page/loginok.jsp</result>
    5             <result name="c">/page/loginok.jsp</result>
    6             <result name="d">/page/loginok.jsp</result>
    7         </action>
    8 </package>

    方式二:添加可用

    在package包中添加<global-allowed-methods>regex:.*</global-allowed-methods>

    1 <package name="my" extends="struts-default" namespace="/my" >
    2         <global-allowed-methods>regex:.*</global-allowed-methods>
    3         <action name="stu_*" class="com.czd.action.tryAction" method="{1}">
    4             <result name="a">/page/loginok.jsp</result>
    5             <result name="b">/page/loginok.jsp</result>
    6             <result name="c">/page/loginok.jsp</result>
    7             <result name="d">/page/loginok.jsp</result>
    8         </action>
    9 </package>

    或者<allowed-methods>add,del,...</allowed-methods>

    1 <struts>
    2     <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    3     <package name="mypack" extends="struts-default">
    4         <action name="info*" class="com.stone.struts2.action.MyFirstAction" method="{1}">
    5             <result>/{1}info.jsp</result>
    6             <allowed-methods>add,del</allowed-methods>
    7         </action>
    8     </package>
    9 </struts>
  • 相关阅读:
    【WEBI专题】解决在交叉表中计算占比、偏差、率的问题
    前导零的问题(增加/删除)
    在SAP BW中使用ABAP
    如何组织维度
    BEx Query Designer中的变量及其增强
    《魔幻手机》经典台词摘录
    今天发现了VISTA系统的一个BUG
    Online Tools And Sofrware Directory Entry
    [转载]博客园通过Word 2007发布随笔
    为你的程序增加记忆功能
  • 原文地址:https://www.cnblogs.com/liberty777/p/10214468.html
Copyright © 2011-2022 走看看