我正在使用 Spring 3 和 JSR 303。我有一个表单支持对象,其嵌套对象需要验证。在下面的示例中,我如何验证 formObject.getFoo().getBean()?当我运行下面的代码时,结果参数始终为空,即使 HTML 页面没有提交任何内容,此时验证应该失败。请注意,当我通过调用 validate(formObject.getFoo().getBean(), Bean.class)
手动验证它时,它会起作用(即验证失败)。
@Controller
public class FormController {
@RequestMapping(method = RequestMethod.POST)
public void process(HttpServletRequest request, @Valid FormObject formObject, BindingResult result) {
...
}
// This is the class that needs to be validated.
public class Bean {
@NotBlank
private String name;
}
public class Foo {
private Bean bean;
}
public class FormObject {
private Foo foo;
}
}
最佳答案
如果您希望验证向下级联到子对象,那么您必须在父对象的字段上放置@Valid 注释:
public class Bean {
@NotBlank
private String name;
}
public class Foo {
@Valid
private Bean bean;
}
public class FormObject {
@Valid
private Foo foo;
}
关于java - Spring MVC 和 JSR 303,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187798/