「JAVA中valid」java中validate

博主:adminadmin 2022-12-12 18:48:05 124

今天给各位分享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的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-12,除非注明,否则均为首码项目网原创文章,转载请注明出处。