我正在使用基于Spring注释的表单验证(主要是@NotBlank和@Length),效果很好。我正在将formbean传递给验证方法,如下所示:
validate(formBean, result);
我有几个注释附加到各种表单字段,这些表单字段除了一个之外还按预期进行验证。
表单bean中的一个字段声明如下:
private EntriesBean entries;
这个字段显然是指一个有通常的getter和setter的bean。此bean中的一些字段也附加了验证注释,但它们不像其他字段那样验证为validate()方法调用的一部分。这与从另一个bean引用的bean有关,而不是直接从调用validate()的方法引用吗?
由于
答案 0 :(得分:0)
您可以通过以下方式验证“条目”字段:
@Valid
private EntriesBean entries;
这将使Hibernate验证器级联该bean中的验证
答案 1 :(得分:0)
回答了我自己的问题。
阅读非常冗长的文档我可以看到这样做的方法是使用BindingResult对象的pushNestedPath()和popNestedPath()方法,如下所示:
result.pushNestedPath("entries");
validator.validate(form.getEntries(), result);
result.popNestedPath();
我不喜欢这种做法,因为它看起来很乱,但它有效,看来