struts2.0 验证不执行

问题描述

page:<@s.submit value="保存为草稿" method="saveDraftOrder" cssClass="btn_w65px"/><@s.submit value="提交" method="saveFormalOrder" cssClass="btn_w65px"/>xml:<!-- 保存正式订单信息 --><action name="saveOrder" class="com.sale.productorder.control.action.ProductOrderAction" method="saveFormalOrder"><!-- 修改草稿订单信息 --><action name="updateDraftOrderInfo" class="com.sale.productorder.control.action.ProductOrderAction"method="saveFormalOrder"><!-- 基本的配置没问题--> <interceptor-stack name="DefaultStack"> <interceptor-ref name="emptyParams"/> <interceptor-ref name="i18nStack"/> <interceptor-ref name="validation"/> <interceptor-ref name="workflow"/> <interceptor-ref name="initUser"/> </interceptor-stack>validation-name: ProductOrderAction-saveDraftOrder-validation.xmlProductOrderAction-saveFormalOrder-validation.xmlClassName:ProductOrderAction.java我要验证 ProductOrderAction 的 saveDraftOrder && saveFormalOrder 方法配置文件不起作用。自己search 了一下 官网上这样说 貌似对我这个没什么用。。。 1. To use a postfix wildcard, just move the asterisk and add an underscore. 2. 3. <action name="Crud_*" class="example.Crud" method="{1}"> 4. From the framework's perspective, a wildcard mapping creates a new "virtual" mapping with all the same 5. attributes as a conventional, static mapping. As a result, you can use the expanded wildcard name as the name 6. of validation, type conversion, and message resource files, just as if it were an Action name (which it is!). 7. 8. Crud_input-validation.xml 9. Crud_delete-conversion.xml :oops: 。请各位赐教下。。感激万分!怎么没人理。。。。问题补充:配置没有问题,action 里的方法可以运行只是 验证规则没有执行我估计是提交方式 的问题ps:我是用相同的action name 但是method 不同

解决方案

说句题外话,你的配置里面错误还挺多。再帮你改一下<!-- 保存正式订单信息 --> <action name="saveOrder" class="com.sale.productorder.control.action.ProductOrderAction" method="saveFormalOrder"> <!-- 修改草稿订单信息 --> <action name="updateDraftOrderInfo" class="com.sale.productorder.control.action.ProductOrderAction"method="saveDraftOrder"> ProductOrderAction-saveOrder-validation.xml ProductOrderAction-updateDraftOrderInfo-validation.xml <@s.submit value="保存为草稿" action="saveOrder" cssClass="btn_w65px"/> <@s.submit value="提交" action="updateDraftOrderInfo" cssClass="btn_w65px"/>
解决方案二:
引用自己search 了一下 官网上这样说 貌似对我这个没什么用。。。 1. To use a postfix wildcard, just move the asterisk and add an underscore. 2. 3. <action name="Crud_*" class="example.Crud" method="{1}"> 4. From the framework's perspective, a wildcard mapping creates a new "virtual" mapping with all the same 5. attributes as a conventional, static mapping. As a result, you can use the expanded wildcard name as the name 6. of validation, type conversion, and message resource files, just as if it were an Action name (which it is!). 7. 8. Crud_input-validation.xml 9. Crud_delete-conversion.xml 看来你还是不明白,详细的解释一下:对于这个action配置:<action name="Crud_*" class="example.Crud" method="{1}"> 如果action类里面有一个input方法,那么就有了一个名字叫Crud_input的action.配置这个action的校验的xml文件名就叫做:Crud_input-validation.xml然后画面请求Crud_input的时候,就调用Crud_input-validation.xml来进行验证。这个就是struts2的校验配置文件的命名规则。按照action的方法名来配置是没有用的。你用了这样的定义方式。引用<!-- 保存正式订单信息 --> <action name="saveOrder" class="com.sale.productorder.control.action.ProductOrderAction" method="saveFormalOrder"> <!-- 修改草稿订单信息 --> <action name="updateDraftOrderInfo" class="com.sale.productorder.control.action.ProductOrderAction"method="saveFormalOrder"> 就产生了saveOrder和updateDraftOrderInfo两个Action,虽然对应的是同一个方法,但是配置校验文件的只要配置actionName对应的校验文件,引用ProductOrderAction-saveOrder-validation.xml ProductOrderAction-updateDraftOrderInfo-validation.xml 就可以进行不同的验证。然后具体到你这儿页面上面使用的时候,直接在调用action的submit按钮里面定义action属性就可以了,不用method属性。<@s.submit value="保存为草稿" action="saveOrder" cssClass="btn_w65px"/> <@s.submit value="提交" action="updateDraftOrderInfo" cssClass="btn_w65px"/>
解决方案三:
你的校验配置文件ProductOrderAction-saveDraftOrder-validation.xml的命名有问题。按照我上面说的改就可以了。
解决方案四:
漏了一个 <action name="updateDraftOrderInfo" class="com.sale.productorder.control.action.ProductOrderAction"method="saveFormalOrder">
解决方案五:
validation-name: ProductOrderAction-saveDraftOrder-validation.xml ProductOrderAction-saveFormalOrder-validation.xml 红色标记的地方是下面定义的名字才对(用红色标记出来了)<action name="saveOrder" class="com.sale.productorder.control.action.ProductOrderAction" method="saveFormalOrder">
解决方案六:
page:<@s.submit value="保存为草稿" method="saveDraftOrder" cssClass="btn_w65px"/><@s.submit value="提交" method="saveFormalOrder" cssClass="btn_w65px"/>xml:<!-- 保存正式订单信息 --><action name="saveOrder" class="com.sale.productorder.control.action.ProductOrderAction" method="saveFormalOrder"><!-- 修改草稿订单信息 --><action name="updateDraftOrderInfo" class="com.sale.productorder.control.action.ProductOrderAction"method="saveFormalOrder"> 仔细看一下你的action是不是配置错误了?以下两行<@s.submit value="保存为草稿" method="saveDraftOrder" cssClass="btn_w65px"/><@s.submit value="提交" method="saveFormalOrder" cssClass="btn_w65px"/>好像和action中的name属性名字不匹配哦,而且两个action中的method都是同名的。method="saveFormalOrder"是不是我问题理解错误了?

时间: 2024-10-24 00:38:16

struts2.0 验证不执行的相关文章

struts2自定义验证器(身份证验证)

struts2的验证器是用的xwork里面的验证,自定义验证器就是根据源码继承已有的字段验证器而来.具体步骤如下: 1.展开xwork-2.0.4.jar,com.opensymphony.xwork2.validator.validators目录下有个default.xml,将它复制到项目根目录下改名叫validators.xml. 验证框架首先在根目录下找validators.xml文件,没找到validators.xml文件,验证框架将调用默认的验证设置,即default.xml里面的配置

Struts2 自定义验证器

前言    其实早在四月底就在JR上发表了这篇文章,这次再次搬出来一是为了资料集中,二是做一些修改和更详细的描述.和以往一样入门和介绍就不说了,如何学习在上篇文章Struts2+JFreeChart上有介绍. 正题1.工程目录结构图:2.以下依次帖代码:    a).    web.xml <?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns=&qu

金融安全资讯精选 2017年第七期:Equifax 泄漏 1.43 亿用户数据,Struts2 REST插件远程执行命令漏洞全面分析,阿里云护航金砖五国大会

   [金融安全动态] 美国信用评分公司Equifax 被攻击,泄漏 1.43 亿用户数据.点击查看原文   概要:泄露的信息包括用户社会安全码.驾照信息.生日信息.信用卡数据等.据SEC(U.S. Securities and Exchange Commission)的文件,三位Euifax董事已经售出了"一小部分"所持股票.Equifax 称黑客利用了 Web 应用的漏洞访问了某些文件,Apache Struts 受到的怀疑最多.Apache Struts 项目今年爆出了两个漏洞,

Struts2爆远程代码执行漏洞(S2-045),附POC

本文讲的是Struts2爆远程代码执行漏洞(S2-045),附POC, 今天凌晨,安全研究员Nike Zheng在Struts2上发现一个高危漏洞(漏洞编号为CVE-2017-5638),当基于Jakarta Multipart解析器上传文件时,可能会导致远程代码执行. Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互.Struts 2以WebWork为核心,采

游戏安全资讯精选 2017年 第七期:游戏账号窃取日益猖獗,Struts2 REST插件远程执行命令漏洞全面分析,2017世界物联网博览会IoT安全观点

  [每周游戏行业DDoS态势]     [游戏安全动态] 游戏账号窃取日益猖獗,游戏运维人员如何做好防范?点击查看原文   概要:盗取游戏账号主要目的是获取个人信息在暗网售卖,并且用账号.虚拟货币.虚拟装备来盈利,这也意味着,游戏行业越发达,安全风险也就越高,因为攻击者的盈利空间越大. 作为游戏公司,可定期引导玩家去检查自己的账户密码是否受到数据泄露的影响:如果遇到游戏账号丢失或大面积被窃取,游戏公司需要尽快做好沟通:安全运维人员要随时关注登录游戏的活跃IP,如果遇到IP增加的情况,则需要及时

struts2.0中,用Hibernate写分页,其中jsp页面应该怎样写?

问题描述 Action是这样写的:publicclassPageAction{HttpServletRequestrequest;publicStringexecute()throwsException{Listlist=null;inttotallRows;TEmpInfoPageExtendtEmpInfoPageExtend=newTEmpInfoPageExtend();totallRows=tEmpInfoPageExtend.getCount();System.out.println

Struts2.0 + Spring2.0 + Hibernate3.2编程新解!!!申请【精华贴】

问题描述 最近发现一款SSH代码生成的工具,介绍给大家,下面是我原文copy过来的,希望对大家有帮助,呵呵....AutoCode代码生成器(SSH版)[用于JAVA开发中的Struts2.0+Spring2.0+Hibernate3.2框架整合程序开发]强大的支撑功能,堪称JAVASSH编程的利器,你绝对值得拥有!自动生成以下所有内容(即:完整的JavaSSH支持的工程)Sturts2.0配置-->sturts.xml.struts.propertiesSpring2.0配置-->appli

Struts2.x学习:第一个Struts2.0例子

具体相关页面及相应配置如下: 在struts1.x系列中,所有的请求是通过一个servlet(ActionServlet)来管理控制的,在Struts2.0而是经过一个Filter来处理请求的 web.xml : <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter- class&g

CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告

一. 漏洞概述 2017年9月5日,Apache Struts 2官方发布一个严重级别的安全漏洞公告,该漏洞由国外安全研究组织lgtm.com的安全研究人员发现,漏洞编号为CVE-2017-9805(S2-052),在一定条件下,攻击者可以利用该漏洞远程发送精心构造的恶意数据包,获取业务数据或服务器权限,存在高安全风险. 二. 漏洞基本信息 漏洞编号:CVE-2017-9805 漏洞名称: Struts2 REST插件远程执行命令漏洞(S2-052) 官方评级: ** 严重 **漏洞描述: 当S