Spring 使四个数据字段中的两个字段成为必填字段的注解

Spring annotation for making two fields mandatory out of four data fields

我有四个数据字段,我必须确保接收到四个字段中至少两个字段的数据。我正在使用 spring 3 mvc,我想知道如果我们在 spring 中有任何注释可用,它可用于跨四个字段对这个非空逻辑进行分组。

是的,您可以通过 Hibernate Validator 的注释 @NotEmpty 来完成,它将检查值为 not nullsize is > 0

这个注释是在你需要将其设为必填字段的bean 字段上给出的。

在客户端,如果您使用的是 Spring 表单标记,则有属性 modelattribute=BeanName 将您的表单字段映射到 Bean 字段。

在控制器端,您需要在进一步处理之前验证此 bean,为此您需要在控制器中的 bean 对象参数之前包含 @valid 注释,如下所示

public String submitForm(@Valid MyBean myBean, BindingResult result, Model m) 
{
    if(result.hasErrors()) {
        return "formPage";  //return to error page or display error on client side
    }

    m.addAttribute("message", "Successfully saved form: ");
    return "formPage";
}  

result.hasErrors() return 如果根据您的 bean class 中定义的验证字段值无效,则为真。如果所有值都正确,它 return 为假。

这是 Validate Form fields in Spring MVC 上的完整示例。

这可以通过简单地在 spring

中创建自定义验证器注释来实现