hibernate validate 自定义对类的验证,可以同时验证几个字段的关联关系

最近开发接口,要求验证几个有关联的字段,但是在资料中,都是看到类似于@notnull,@notempty的注解,都是对单个字段,并不能满足我们平时开发的需求。

我们遇到的是,当选择某个字段时,另外一个字段不能为空,这样具有逻辑判断的验证,

1、在hibernate validation 中,提供了对类的注解。可以实现此需求

定义注解。

@Retention(RetentionPolicy.RUNTIME)
//element.type 注解用于类
@Target(ElementType.TYPE)
@Documented
@Constraint(validatedBy=BaseValAnno.class)
//@Repeatable(LinkVals.class)(可重复注解同一字段,或者类,java1.8后支持)
public @interface BaseVal {
String message() default "格式不正确";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default{};
}

2.对注解进行定义,继承 ConstraintValidator,接口,



3.自定义注解的使用。

/*

1、由于是对类的注解,所以存在的逻辑关系是先对属性验证,然后对类的逻辑关系验证,

2、@GroupSequence是对注解分组的排序,可以通脱他判断先后顺序

*/

@GroupSequence({first.class,second.class,third.class,fourth.class,BaseInfo.class})

@BaseVal(groups={fourth.class})
public class BaseInfo  {

//private int id;

@NotEmpty(message="年度不能为空",groups={first.class})
    private String niandu;

@NotEmpty(message="处罚主体不能为空",groups={first.class})
    private String areacode;



  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 jQuery Validate 插件的 `addMethod` 方法来自定义验证规则,并使用隐藏的 input 元素来进行验证。 具体实现步骤如下: 1. 在 HTML 文件中添加一个隐藏的 input 元素,并设置它的 `name` 属性和验证规则。 ```html <input type="hidden" name="customButton" class="custom-button-validate" required> ``` 在上述代码中,`name` 属性设置为 `customButton`,并添加了 `required` 规则。同时,通过 `class` 属性添加了一个自定义的类名 `custom-button-validate`,以便在 JavaScript 文件中进行操作。 2. 在 JavaScript 文件中,使用 `addMethod` 方法来自定义验证规则。 ```javascript $.validator.addMethod("customButton", function(value, element) { // 在这里编写自定义验证规则的逻辑 // 如果验证通过,返回 true,否则返回 false return true; }, "自定义验证失败提示信息"); ``` 在上述代码中,`addMethod` 方法接受三个参数,分别为自定义验证方法的名称、验证函数和验证失败时的提示信息。在验证函数中,可以编写自定义验证规则逻辑,并根据验证结果返回 `true` 或 `false`。 3. 在 jQuery Validate 插件的 `submitHandler` 方法中,手动触发验证。 ```javascript $("#form").validate({ submitHandler: function(form) { // 验证通过后的处理逻辑 // 在这里手动触发自定义验证规则 $(".custom-button-validate").valid(); } }); ``` 在上述代码中,`submitHandler` 方法在表单验证通过后被触发。在这个方法中,可以编写表单验证通过后的处理逻辑,并手动触发隐藏的 input 元素的验证,以便触发自定义验证规则。 通过上述步骤,可以实现在 jQuery Validate 插件中使用隐藏的 input 元素来自定义按钮验证。需要注意的是,在验证函数中,需要编写自定义验证规则逻辑,并根据验证结果返回 `true` 或 `false`。同时,需要在 `submitHandler` 方法中手动触发隐藏的 input 元素的验证,以便触发自定义验证规则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值