簡體   English   中英

Spring MVC表單驗證:如何使字段可選?

[英]Spring MVC form validation: how to make field optional?

我有一個表單(Spring 3 MVC項目),我正在使用DTO(數據傳輸對象)進行數據驗證。 數據被發送到控制器,我正在使用BindingResult.hasErrors()方法和適當的注釋檢查它的有效性。 我將簡化這里,因為我遇到了數字字段的問題。

DTO:

public class Item {

    private String discount;

    @Digits(integer = 15, fraction = 2)
    public String getDiscount() {
        return discount;
    }

}

如果我提交沒有在discount字段中寫入的表單, BindingResult.hasErrors()將返回帶有消息的true

numeric value out of bounds (<15 digits>.<2 digits> expected)

我想要實現的是discount字段可以為空,但如果在其中寫入某些內容,則它應該是@Digits注釋提供的數字格式。 我怎樣才能做到這一點?

您需要做的是配置Spring以將空String轉換為null 您可以通過在FormController initBinder方法中注冊StringTrimmerEditor來實現此目的:

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}

StringTrimmerEditor一個

然后由parsifal指定, @Digits Digits將null值視為valide。

您可以創建自定義驗證注釋。 可以在spring文檔中找到解釋: http ://static.springsource.org/spring/docs/3.0.0.RC3/reference/html/ch05s07.html,par 5.7.2.2

暫無
暫無

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

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