1

我正在使用基于 Springs 注释的表单验证(主要是 @NotBlank 和 @Length),效果很好。我将 formbean 传递给验证方法,如下所示:

validate(formBean, result);

我有几个注释附加到各种表单字段,除了一个之外,它们正在按预期进行验证。

我在表单 bean 中的一个字段声明如下:

private EntriesBean entries;

该字段显然是指具有通常的 getter 和 setter 的 bean。此 bean 中的几个字段也附加了验证注释,但它们不像其他字段那样作为 validate() 方法调用的一部分进行验证。这是否与这个 bean 被另一个 bean 引用而不是直接来自调用 validate() 的方法有关?

谢谢

4

2 回答 2

0

您可以通过这种方式验证您的“条目”字段:

@Valid
private EntriesBean entries;

这将使 Hibernate 验证器级联该 bean 中的验证

于 2012-06-26T17:13:04.607 回答
0

回答了我自己的问题。

阅读非常冗长的文档,我可以看到这样做的方法是使用 BindingResult 对象的 pushNestedPath() 和 popNestedPath() 方法,如下所示:

    result.pushNestedPath("entries");
    validator.validate(form.getEntries(), result);
    result.popNestedPath();

我不喜欢这种方式,因为它看起来很乱,但它确实有效,看起来

于 2012-06-27T10:12:44.107 回答