validator验证框架

姗姗不来迟 姗姗不来迟     2022-10-12     692

关键词:

Validator验证框架

 系统分析

在设计Validator验证框架时,需要明确以下问题。

(1)当用户没有输入数据时,弹出英文提示信息。

(2)当用户输入的数据长度大于系统设置的数据长度,弹出英文提示信息。

(3)当用户输入的账号或密码不正确,弹出英文提示信息。

1.2 工作流程图
Validator验证框架系统流程如图1所示。

技术要点分析

1.1 技术要点
Validator验证框架在Struts应用中得到了广泛的运用,Validator验证框架主要依赖两个Jar文件。
q jakarta-oro.jar:该文件主要提供了一些文本类、具有文本替换、过滤和分割等功能。
q commons-validator.jar:该文件提供了一个简单、可扩展的验证框架,包括了通用的验证方法和规则。
在Struts中,这两个Jar文件添加到应用WEB-INF/lib目录中。
Validator框架采用两个基于XML的配置文件来配置验证规则。这两个文件为validator-rule.xml和validation.xml。在Struts中,它们均存放在WEB-INF文件夹下。

1.2 validator-rules.xml文件
validator-rules.xml文件包括了一组通用的验证规则,对所有的Struts都适用。一般情况下,没有必要修改该文件,除非需要修改或扩展默认的规则。
说明:如果想扩展默认的验证规则,最好把自定义的规则放在另一个XML文件中,而不是直接添加到validator-rules.xml文件中,这样,当升级Validator框架的版本时,不需要修改validator-rules.xml文件。
在validator-rules.xml文件中,每个<validator>元素定义了一个唯一的验证规则。例如,以下代码定义了一个名为“required”的验证规则。

<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>

(1)name属性
name属性指定验证规则的逻辑名,这个名字必须是唯一的。
(2)classname和method属性
classname和method属性分别指定实现验证规则逻辑的类和方法。
(3)msg属性
msg属性制定来自于资源文件中的消息key。当验证失败时,Validator框架将根据这个消息key到资源文件中查找匹配的消息文本。
(4)depends属性
depends属性制定在调用当前验证规则之前必须先调用的其他验证规则。例如以下“maxlength”验证规则的配置代码中使用了depends属性。

<validator name="maxlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMaxLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
javax.servlet.http.HttpServletRequest"
depends="required"
msg="errors.maxlength"
jsFunction="org.apache.commons.validator.javascript.validateMaxLength"/>

以上代码表明,在调用“maxlength”验证规则之前,先调用“required”规则。如果depends属性包含多个验证规则,则用逗号隔开,例如:
depends="required,integer"
如果调用depends属性指定的验证规则验证失败,就不会再调用下一个规则。

1.3 valiation.xml文件
Validator框架的另一个配置文件为valiation.xml文件,这个文件用于声明Form Bean应该采用的验证例程,取代在ActionForm类中编程的方式来实现验证逻辑。下面将介绍valiation.xml文件中的元素。
(1)<form-validation>元素
<form-validation>元素是Validator配置文件的根元素,它包含两个子元素:<global>和<formset>元素。<global>元素可以出现0次或者多次,而<formset>元素可以出现一次或者多次。
(2)<global>元素
在<global>元素中可以定义<constant>子元素,它用来定义常量表达式,在文件的其余地方可以应用这些常量表达式。
(3)<formset>元素
<formset>元素包含两个子元素:<constant>和<form>。<constant>可以出现0次或者多次,<form>元素可以出现一次或者多次。

(4)<form>元素
<formset>元素的<form>子元素用于为表单配置验证规则,它的name属性指定了表单的名字。<form>元素可以包含一个或者多个<field>子元素。
(5)<field>元素
<form>元素的<field>子元素用于配置表单中的字段的验证规则。
(6)<msg>元素
<field>元素的<msg>子元素指定验证规则对应的消息文本。
(7)<arg>元素
<field>元素可以包括4个附加的子元素:<arg0>、<arg1>、<arg2>以及<arg3>,用户替换复合消息中的参数。<arg0>元素指定第一个替换值,<arg1>元素指定第二个替换值,依次类推。

(8)<var>元素

<field>元素还可以包含0个或者多个<var>元素。<var>元素用来向验证规则传递参数。

 

运行结果

 

详解struts中validator验证框架的使用

...和分割功能  Commonsvalidatorjar提供了一个简单可扩展的验证框架包含了通用的验证方法和验证规则  在用Struts中用这个框架需加入这两个包用起来感觉还不错  下面介绍一下  Validator采用基于两个xml文件的方式来配置验... 查看详情

spring/springbootjsr-303验证框架之hibernate-validator

JSR-303与hibernate-validatorSpring3支持JSR-303验证框架,JSR-303是JavaEE6中的一项子规范,叫做BeanValidation,官方参考实现是hibernate-validator(与HibernateORM没有关系),JSR303用于对JavaBean中的字段的值进 查看详情

struts2验证框架方法一

struts2验证框架方法一:*只有一个文件*在action所对应的包下面建立****-validation.xml(****是action的类名),如:SaveUserAction-validation.xml*如果是多个方法的action,则这样写:action类名-方法名-validation.xml============================如下配置======... 查看详情

jqueryvalidate验证框架详解(jquery.validate.min.js)(代码片段)

原博客jQueryValidate验证框架详解jQuery校验官网地址:https://jqueryvalidation.org/一、导入js库<scripttype="text/javascript"src="<%=path%>/validate/jquery-1.6.2.min.js"></script><scripttype="text/javascript"src="<%=path%>/validate/jquery.validate.min.js"... 查看详情

将 django 密码验证器与 django rest 框架 validate_password 集成

】将django密码验证器与djangorest框架validate_password集成【英文标题】:integratedjangopasswordvalidatorswithdjangorestframeworkvalidate_password【发布时间】:2021-06-1714:53:15【问题描述】:我正在尝试将djangovalidators1.9与djangorest框架序列化程序集成... 查看详情

springmvc验证框架validation自定义注解实现传递参数到国际化资源文件(代码片段)

关于SpringMVC验证框架Validation的使用方法,不是本篇的重点,可参见博文SpringMVC介绍之Validation在使用Validation时,一定有朋友遇到过一个问题,那就是:无法传递参数到国际化资源文件properties错误描述中。举个... 查看详情

django框架的基础知识点《伍》

...列化:将接收到的字典转换成模型类的对象分为两步:1.验证,2.保存--------》验证:验证的方式;1.类型+选项2.validate_属性名称(self,value)===》验证指定的属性是否合法3.validate(self,values)========》验证多个属性是否合法4.vali... 查看详情

后盾网-ci框架学习笔记

CI框架:  表单验证:    载入验证类      $this->load->library(‘form_validation‘);    设置规则      $this->form_validation->set_rules(‘name值‘,‘规则‘);    执行验证      $this->form_valida... 查看详情

hibernate的校验框架validation和httpmessageconverter的配置方式

...无法糅合在一起。解决方案:hibernate的校验框架validator的验证主要说的是使用AnnotaionJSR标准的验证,public class Us 查看详情

springvalidation验证框架使用(代码片段)

一、介绍SpringValidation验证框架对参数的验证机制提供了@Validated(Spring’sJSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。... 查看详情

spring/springbootjsr-303验证框架之hibernate-validator

JSR-303与hibernate-validatorSpring3支持JSR-303验证框架,JSR-303是JavaEE6中的一项子规范,叫做BeanValidation,官方参考实现是hibernate-validator(与HibernateORM没有关系),JSR303用于对JavaBean中的字段的值进行验证。hibernate-... 查看详情

深入浅出flask(20):h-ui前端框架的表单验证

前面学习了怎么样进行表单布局,接着下来就是进行表单验证了。验证的方法有很多,比如使用前端验证,也可以采用后端验证。可以采用不同的组件验证,比如jQuery.Validate.js验证,也可以采用Validform.js验证。在这里采用jQuery.Va... 查看详情

java的业务逻辑验证框架fluent-validator(代码片段)

背景在互联网行业中,基于Java开发的业务类系统,不管是服务端还是客户端,业务逻辑代码的更新往往是非常频繁的,这源于功能的快速迭代特性。在一般公司内部,特别是使用Javaweb技术构建的平台中,... 查看详情

java的业务逻辑验证框架fluent-validator(代码片段)

背景在互联网行业中,基于Java开发的业务类系统,不管是服务端还是客户端,业务逻辑代码的更新往往是非常频繁的,这源于功能的快速迭代特性。在一般公司内部,特别是使用Javaweb技术构建的平台中,... 查看详情

springmvc验证框架validation自定义注解实现传递参数到国际化资源文件(代码片段)

关于SpringMVC验证框架Validation的使用方法,不是本篇的重点,可参见博文SpringMVC介绍之Validation在使用Validation时,一定有朋友遇到过一个问题,那就是:无法传递参数到国际化资源文件properties错误描述中。举个... 查看详情

springmvc验证框架validation特殊用法(代码片段)

...法。1.分组有的时候,我们对一个实体类需要有多中验证方式,在不同的情况下使用不同验证方式,比如说对于一个实体类来的id来说,保存的时候是不需要的,对于更新时是必须的,可以如下配置:pub... 查看详情

后盾网-ci框架实例教程-马振宇-学习笔记

第四节视频:  表单验证操作:    1、载入验证类      $this->load->library(‘form_validation‘);    2、设置规则      $this->form_validation->set_rules(‘name值‘,‘标签名称’,‘规则’);    3、... 查看详情

bjui的validate表单验证的使用

date-rule="date"表示格式为yyyy-MM-dddate-rule="datetime"表示格式为yyyy-MM-ddHH:mm:ss依赖框架在:http://niceue.com/validator/demo/用法例子:<tr><tdalign="right">扣款金额</td><tdalign="left"><selectna 查看详情