手机版

回弹集成JSR303参数验证的实现

时间:2021-08-20 来源:互联网 编辑:宝哥软件园 浏览:

JSR303是一套用于JavaBean参数验证的标准

1.pom导入依赖关系

Dependencygroupidol.springframework.boot/groupidartifact idspring-boot-starter-validation/artifact id/dependency 2,注释类型

(1)空支票

@Null验证对象是否为Null@NotNull验证对象是否不为Null,不能检查长度为0的字符串。@NotBlank检查约束字符串是否为空,修剪后的长度是否大于0,仅适用于字符串,前后空格将被删除。@NotEmpty检查约束元素是null还是Empty。(2)博兰支票

@AssertTrue验证布尔对象是否为真@AssertFalse验证布尔对象是否为假(3)长度检查

@Size(min=,max=)验证对象(数组、集合、映射、字符串)的长度是否在给定范围内@Length(min=,max=)验证字符串的长度是否在min和max的范围内。(4)日期检查

@过去验证日期和日历对象是否在当前时间之前。如果验证为真,则带注释的元素必须是过去的日期。@Future验证日期和日历对象是否在当前时间之后。如果验证为真,则带注释的元素必须是未来的日期。@Pattern验证String对象是否符合正则表达式的规则,被注释的元素是否符合公式化的正则表达式。regexp:正则表达式标志:指定Pattern的数组。标志,指示正则表达式的相关选项。(5)数值检查

建议使用sting,整数类型,不要使用int类型,因为当表单值为“”时,不能转换为int,但可以转换为sting为“”。整数为空@最小验证数字和字符串对象是否等于或小于指定值@最大验证数字和字符串对象是否等于或小于指定值@十进制标记值必须不大于约束中指定的最大值。这个约束的参数是由BigDecimal定义的最大值的字符串表示。small Number存在精度@DecimalMin的标记值不得小于约束中指定的最小值。这个约束的参数是由BigDecimal定义的最小值的字符串表示。小数存在精度@Digits验证数字和字符串的组成是否合法@Digits(integer=,fraction=)验证字符串是否为符合指定格式的数字,整数精度由integer指定,小数精度由fraction指定。@Range(min=,max=)指定的元素必须在合适的范围内。@Valid递归检查关联的对象。如果关联的对象是集合或数组,则递归检查其中的元素,如果是映射,则检查值部分。(递归验证)@CreditCardNumber信用卡验证@Email验证是否为电子邮件地址。如果为空,则不验证即验证。@ scriptassert (lang=,script=,alias=) @ URL (protocol=,host=,port=,regexp=,flags=) 3。自定义身份验证类别

(1)用户定义的注释,至少包括消息()、组()、负载(),

@Target({ METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER })@ Retention(RUNTIME)@ documentated @ Constraint(validatedBy={ isrightvalidator . class })public @ interface is right { boolean right()(默认为true);字符串消息()默认值“这是身份验证失败的提示消息”;上课?[]group()默认为{ };上课?扩展有效负载[]有效负载()(默认为{ };}(2)自定义注释检查器类,继承ConstraintValidator类的注释类,注释参数类型,覆盖两种方法(initialize:初始化操作,isValid:逻辑处理)

公共类IsRightValidator实现ConstraintValidatorIsRight,String { private boolean right=false;@ override public void initialize(is right constraint annotation){ right=constraint annotation . right();} @Overridepublic boolean isValid(字符串值,ConstraintValidatorContext上下文){ if(right){ return true;} else { return false}}4.JSR303注释的使用

(1)要验证的bean通常是ViewObject的bean

公共类TestVo{ @NotNull@Length(min=32)私有字符串密码;}(2)在控制器接口方法的接收参数中用@Valid修改ViewObject

@控制器公共类LoginController { @请求映射('/Test ')@响应体公共void doLogin(httpersvletresponse响应,@ Valid TestVo TestVo){ log。信息(TestVo。tostring());}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:回弹集成JSR303参数验证的实现是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。