gpt4 book ai didi

java - Spring MVC 表单验证 : how to make field optional?

转载 作者:搜寻专家 更新时间:2023-11-01 02:49:25 25 4
gpt4 key购买 nike

我有一个表单(Spring 3 MVC 项目),我正在使用 DTO(数据传输对象)进行数据验证。数据被发送到 Controller ,我正在使用 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 将 empty String 转换为 null。您可以通过在 FormController initBinder 方法中注册一个 StringTrimmerEditor 来实现这一点:

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

StringTrimmerEditor

然后按照 parsifal 的规定,@Digitsnull 值视为有效值。

关于java - Spring MVC 表单验证 : how to make field optional?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14216371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com