相关疑难解决方法(0)

是否有使用带注释的方法参数启用JSR 303 Bean验证的标准方法

我一直在寻找一段时间没有运气.我没有使用Spring MVC,但仍想使用它@javax.validation.Valid来启用方法参数的验证.举个例子

public class EventServiceImpl implements IEventService {
    @Override
    public void invite(@Valid Event event, @Valid User user) { ... }
}
Run Code Online (Sandbox Code Playgroud)

使用MVC,这对带@Controller注释的bean的启用很简单<mvc:annotation-driven/>(参见5.7.4.3配置JSR-303验证器供Spring MVC使用).

使用AOP应该是非常简单的.不过,我怀疑有一些标准的方法可以做到这一点.因此,问题是:对于非MVC应用程序和非控制器bean,是否存在类似的事情,以便为带注释的bean启用输入验证?

java aop spring hibernate-validator bean-validation

10
推荐指数
1
解决办法
1万
查看次数

Micronaut 多级 bean 验证

我正在研究 Microanut 版本 1.2.0,并试图找到一种方法来避免对作为对外部 API 的响应而形成的 bean 中可能存在的数据不一致进行冗余检查。我的想法是验证 bean,并且验证步骤还应该验证 bean 的实例变量是否存在可能的违规。

例如,我有一个有地址字段的学生班级。

学生.java

@Data
@Builder
@Introspected
@NoArgsConstructor
@AllArgsConstructor
public class Student {
    @NotNull
    String id;
    String name;
    Address address;
}
Run Code Online (Sandbox Code Playgroud)

地址.java

@Data
@Builder
@Introspected
@NoArgsConstructor
@AllArgsConstructor
public class Address {
    @NotNull
    String houseNumber;
    String city;
}
Run Code Online (Sandbox Code Playgroud)

现在,当我对 Student 类型的实例进行 bean 验证时,我想介绍实例变量address的验证。因此,在这种情况下,对于 null Student.id 和 null Address.houseNumber,单次验证应该给出错误。然而,就我而言,我只收到一个错误,即 Student 实例中的 Null id 错误。

学生测试.java

@Test
public void checkIfValidationsAreWorking() {
    System.out.println("Tests Started");
    // HouseNumber will be Null
    Address address = Address.builder()
            .city("Delhi") …
Run Code Online (Sandbox Code Playgroud)

java validation bean-validation micronaut

2
推荐指数
1
解决办法
1332
查看次数

Spring MVC表单验证不适用于嵌套的复杂类型

我正在使用表单验证实现示例Spring MVC表单。我有一个复杂的类型Address作为Student表单bean的bean属性。并且我@NotEmptyAddressbean属性添加了表单验证。但是,UI中并未反映出同样的情况。但是表单验证适用于其他原始类型的Student表单bean。

所以,验证完全适用于Student表单bean而不是嵌套复杂类型,如AddressStudent的form bean。

我正在尝试了解原因和解决方法。

春季版本4.0+。休眠验证器API:5.2.4

Student POJO:

package com.xyz.form.beans;

import java.util.Date;
import java.util.List;

import javax.validation.constraints.Past;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;

import com.xyz.validators.DateNotEmpty;
import com.xyz.validators.ListNotEmpty;

public class Student {
    @Size(min = 2, max = 30)
    private String firstName;
    @Size(min = 2, max = 30)
    private String lastName;
    @NotEmpty
    private String gender;
    @DateNotEmpty
    @Past
    private Date DOB;
    private String email;
    private String mobileNumber;
    @ListNotEmpty
    private List<String> …
Run Code Online (Sandbox Code Playgroud)

java forms validation spring spring-mvc

1
推荐指数
1
解决办法
1181
查看次数

Spring 验证 @NotNull 不验证

我正在尝试使用 Spring Validator 验证 POST 请求。这是我要验证的对象:

@Validated
public class Request implements Serializable {
    private static final long serialVersionUID = 1L;

    private Long id1;
    private Long id2;   
    private String s;   
    private List<Mapping> mappings;

    public Request() {}
    public Request (Long id1, Long id2, String s, List<Mapping> mappings) {
        this.id1 = id1;
        this.id2 = id2;
        this.s = s;
        this.mappings = mappings;
    }

    //getter() and setter() methods.
}
Run Code Online (Sandbox Code Playgroud)

这是映射类:

@Validated
public class Mapping implements Serializable {
    private static final long serialVersionUID = 1L;
    @JsonProperty(value="id") …
Run Code Online (Sandbox Code Playgroud)

java spring spring-validator spring-boot spring-restcontroller

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