zoukankan      html  css  js  c++  java
  • 解决Struts2.5版本使用DML动态调用和<s:form method="">method属性不生效问题

    问题原因

    两个问题根本是相同的,都是外部jsp调用Action中的方法,因为新版本2.5中 的安全机制 ,导致无法用action外部传来的方法,所以两个解决方法是一致的。


    解决步骤:

    步骤1

    新版本2.5是默认不开启动态调用的所以要手动开启,在struts.xml文件中添加常量配置,开启动态方法调用:

    <constant name="struts.enable.DynamicMethodInvocation" value="true" />

    步骤2:

    开启动态调用也不能使用,因为struts2.5的安全机制限制外部调用,所以需要声明允许直接访问的方法,

    方法有两种:

      在struts.xml中的package标签下添加<global-allowed-methods>,标签值为允许外部调用的方法名,多个用逗号分隔,要放在action标签的前面。

      或者在action标签中添加<allowed-methods>形式同上,要放在result标签后边。

    <!--第一种-->
    <package name="default" namespace="/" extends="struts-default">
    <global-allowed-methods>methodName[,...]</global-allowed-methods>
    <action></action>
    ...
    </package>
    
    
    <!--第二种-->
    <action name="login-two" class="action.LoginAction_XWork" >
    <result name="hello">/hello.jsp</result>
    <allowed-methods>methodName[,...]</allowed-methods>
    </action>
  • 相关阅读:
    nginx1配置文件
    div中添加滚动条
    django错误笔记——1242 Subquery returns more than 1 row
    Django中合并同一个model的多个QuerySet
    js正则匹配数字字母汉字
    django错误笔记——URL
    python发送邮件
    SMTP——MIME
    Python读取Excel中的数据并导入到MySQL
    css3选择器
  • 原文地址:https://www.cnblogs.com/liuyiyuan/p/12697109.html
Copyright © 2011-2022 走看看