簡體   English   中英

基於Spring注釋的表單驗證

[英]Spring Annotation Based Form Validation

我正在使用基於Springs注釋的表單驗證(主要是@NotBlank和@Length),效果很好。 我正在將formbean傳遞到驗證方法中,如下所示:

validate(formBean, result);

我有幾個批注附加到各種表單字段,除了一個之外,它們都按預期進行驗證。

我在bean表單中的一個字段聲明如下:

private EntriesBean entries;

顯然,該字段是指具有通常的getter和setter方法的bean。 此bean中的幾個字段還附加了驗證批注,但它們不像其他字段那樣作為validate()方法調用的一部分進行驗證。 這與從另一個bean而不是直接從調用validate()的方法中引用該bean有關嗎?

謝謝

您可以通過以下方式驗證“條目”字段:

@Valid
private EntriesBean entries;

這將使Hibernate驗證器在該bean中級聯驗證

回答了我自己的問題。

閱讀冗長的文檔,我可以看到,執行此操作的方法是使用BindingResult對象的pushNestedPath()和popNestedPath()方法,如下所示:

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

我不喜歡這種方式,因為它看起來很雜亂,但確實有效,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM