相关疑难解决方法(0)

使用Hibernate Validator进行交叉字段验证(JSR 303)

在Hibernate Validator 4.x中是否有(或第三方实现)交叉字段验证的实现?如果不是,那么实现交叉字段验证器的最简洁方法是什么?

例如,如何使用API​​来验证两个bean属性是否相等(例如验证密码字段是否与密码验证字段匹配).

在注释中,我希望有类似的东西:

public class MyBean {
  @Size(min=6, max=50)
  private String pass;

  @Equals(property="pass")
  private String passVerify;
}
Run Code Online (Sandbox Code Playgroud)

validation hibernate-validator bean-validation

228
推荐指数
8
解决办法
15万
查看次数

Spring Boot:请求参数中的自定义验证

我想验证我的控制器中的请求参数之一。请求参数应该来自给定值列表之一,如果不是,则应该抛出错误。在下面的代码中,我希望请求参数 orderBy 来自@ValuesAllowed 中存在的值列表。

@RestController
@RequestMapping("/api/opportunity")
@Api(value = "Opportunity APIs")
@ValuesAllowed(propName = "orderBy", values = { "OpportunityCount", "OpportunityPublishedCount", "ApplicationCount",
        "ApplicationsApprovedCount" })
public class OpportunityController {

@GetMapping("/vendors/list")
    @ApiOperation(value = "Get all vendors")

    public ResultWrapperDTO getVendorpage(@RequestParam(required = false) String term,
            @RequestParam(required = false) Integer page, @RequestParam(required = false) Integer size,
            @RequestParam(required = false) String orderBy, @RequestParam(required = false) String sortDir) {
Run Code Online (Sandbox Code Playgroud)

我编写了一个自定义 bean 验证器,但不知何故这不起作用。即使我为查询 param 传递了任何随机值,它也不会验证并抛出错误。

@Repeatable(ValuesAllowedMultiple.class)
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {ValuesAllowedValidator.class})
public @interface ValuesAllowed {

    String message() default "Field value should …
Run Code Online (Sandbox Code Playgroud)

validation controller spring-annotations http-request-parameters spring-boot

11
推荐指数
2
解决办法
3万
查看次数

如何在 Spring 中使用自定义验证器

我正在构建一个 Spring Boot 应用程序,并尝试为一些我将在服务层中验证的 DTO/实体实现自定义验证。根据关于此事的 Spring 文档,我认为实现此目的的一种方法是实现org.springframework.validation.Validator接口。

作为一个最小的、完整的、可重现的示例,请考虑以下代码:

Spring Initializr 引导项目

添加以下代码src/main/java/com.example.usingvalidation

// Person.java

package com.example.usingvalidation;

public class Person {
    private String firstName;
    private String lastName;
    private int age;
    private String gender;

    public Person() {
    }

    public Person(String firstName, String lastName, int age, String gender) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
        this.gender = gender;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName; …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-boot

11
推荐指数
2
解决办法
2万
查看次数