「JAVA中valid」java中validate
今天给各位分享JAVA中valid的知识,其中也会对java中validate进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
isvalid为什么不能用在java
不是一类东西。
java是一门面向对象的编程语言。java语言具有功能强大和简单易用两个特征,具有简单性、面向对象、分布式等特点,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。IsValid,功能检查对象变量是否已经实例化,即实例变量的值是否是个有效的对象句柄。
java中的 validate()有什么作用
确保组件具有有效的布局。此类主要适用于在 Container 实例上进行操作。
validate是验证的意思,这个函数用的地方很多,比如在jsp中,FormBean中就有这个函数,不过这是继承自父类的方法,需要覆写方法体,多用在一些初始化或者是对输入信息的自定义验证。
Validate事件和CausesValidation 属性协同工怍,防止控件失去焦点直到满足确定的准则。重点CausesValidation属性值设置为True时,Validate事件才发生。Validate事件、 CausesValidation属性示例该示例使用三个控件来示范Validate 事件和CausesValidation 属性的使用。
Validate事件
在焦点转换到一个(第二个)控件之前发生,此时该控件的 CausesValidation属性值设置为True。
Private Sub object_Validate(KeepFocus As Boolean)。
Validate事件语法包含下面几部分:
object一个对象表达式,其值为“应用于”列表中的一个对象。
KeepFocus 确定控件是否失去焦点的值。KeepFocus设置为True时,控件保持焦点。
以上内容参考:百度百科-Validate
2021-12-30 @valid @validted 区别和使用
@Valid是使用Hibernate validation的时候使用
@Validated是只用Spring Validator校验机制使用
说明:java的JSR303声明了@Valid这类接口,而Hibernate-validator对其进行了实现
@Validation对@Valid进行了二次封装
所以必须添加 Hibernate validation 依赖
dependency
groupIdorg.hibernate.validator/groupId
artifactIdhibernate-validator/artifactId
version6.0.17.Final/version
/dependency
常用示例
@Data
public class TestVo {
@NotBlank(message = "name不能为空")
@NotNull(message = "name不能为空123")
private String name;
@NotEmpty(message = "数据集不嫩为空")
@Valid //嵌套验证必须
private ListSubTestVo datas;
}
@Data
public class SubTestVo {
@Min(value = 5, message = "不能小于5")
private Integer age;
}
Post
@PostMapping("/test")
public void test(//@Valid 都行
@Validated
@RequestBody TestVo updateQo) {
}
Get
//对象
@GetMapping("/test1")
public void test1(//@Valid 都行
@Validated
TestVo updateQo) {
}
//多属性 需在Controller加 @Validated
@GetMapping("/test1")
public void test1(@Min(value = 5,message = "不小于5")
@RequestParam(value = "age")Integer age,
@NotNull(message = "不为空")
@RequestParam(value = "name")Integer name) {
}
===================Validated 分组=============================
@Data
public class TestVo {
@NotBlank(groups = {Add.class},message = "name不能为空")
private String name;
@NotEmpty(groups = {Query.class}, message = "数据集不嫩为空")
@Valid
private ListSubTestVo datas;
public interface Add extends Default {};
public interface Query extends Default {};
}
//都不验证
@PostMapping("/test")
public void test(//@Valid 分组效果也等同于Validated
@Validated
@RequestBody TestVo updateQo) {
}
//只验证name 不验证 datas
@GetMapping("/test1")
public void test1(@Validated(TestVo.Add.class)
TestVo updateQo) {
}
//只验证datas 不验证name
@GetMapping("/test2")
public void test2(@Validated(TestVo.Query.class)
TestVo updateQo) {
}
========================自定义检验注解================================
1.自定义注解
@Target({FIELD})
@Retention(RUNTIME)
@Constraint(validatedBy = RegionValidator.class)//自定义的校验类
@Documented
public @interface Region {
String message()default "Region 值不在可选范围内";
Class[] groups()default {};
Class[] payload()default {};
}
2.定义检验类
@Configuration
public class RegionValidatorimplements ConstraintValidator {
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
HashSet regions =new HashSet();
regions.add("China");
regions.add("China-Taiwan");
regions.add("China-HongKong");
return regions.contains(value);
}
}
3.在字段上使用
@Region(message= "区域不合法")
private String regionName;
总结: 保持一致性上可以选择 在Controller 都使用 @Validated 在入参 校验;若单独属性 需要在类上加
分组需求时, 不写或漏写分组, 默认不校验
关于JAVA中valid和java中validate的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-12,除非注明,否则均为
原创文章,转载请注明出处。