Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java springmvc中的验证_Java_Validation_Spring Mvc - Fatal编程技术网

Java springmvc中的验证

Java springmvc中的验证,java,validation,spring-mvc,Java,Validation,Spring Mvc,我们在web应用程序中使用SpringMVC3.0。我们也在使用SpringMVC的验证框架 在进行验证时,我们需要为每个需要验证的实体创建验证器。例如,如果我有一个Person实体,我将使用下面的PersonValidator验证它 public class PersonValidator implements Validator { /** * This Validator validates just Person instances */ public boolean support

我们在web应用程序中使用SpringMVC3.0。我们也在使用SpringMVC的验证框架

在进行验证时,我们需要为每个需要验证的实体创建验证器。例如,如果我有一个Person实体,我将使用下面的PersonValidator验证它

public class PersonValidator implements Validator {
/**
 * This Validator validates just Person instances
 */
public boolean supports(Class clazz) {
    return Person.class.equals(clazz);
}

public void validate(Object obj, Errors e) {
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "field.required");
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "surname", "field.required");
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "age", "field.required");
}
}
我的问题是,是否可能对不同方法的相同实体进行不同的验证

@RequestMapping(method = RequestMethod.POST)
public String add(@Valid Person person, BindingResult result) {
    if (result.hasErrors()) {
        return "person/new";
    }
    personService.addPerson(person);
    return "redirect:/persons";
}

@RequestMapping(method = RequestMethod.POST)
public String update(@Valid Person person, BindingResult result) {
    if (result.hasErrors()) {
        return "person/edit";
    }
    personService.updatePerson(person);
    return "redirect:/persons";
}
我想在添加新人员时验证名字、姓氏和年龄,但在更新时,我不希望年龄是强制性的

这只是一种随机情况,它可以是任何实体和任何属性

我们如何处理这种情况


谢谢。

您可以删除
@Valid
注释,改为在方法内部为模型对象设置一个用于插入vs更新的标志,然后直接调用验证器(您可以将它们插入控制器)


然后在验证器中,您可以选择当前场景需要哪些验证。

以前没有人这样做过吗?有什么想法吗?