gpt4 book ai didi

spring - JSR-303 绑定(bind)前的类型检查

转载 作者:IT老高 更新时间:2023-10-28 13:58:35 26 4
gpt4 key购买 nike

型号....

@Digits(integer=5, fraction=0, message="The value must be numeric and less than five digits")
private int value;

bean 文件....

<mvc:annotation-driven />

Controller ....

@RequestMapping(value = "/admin/save.htm", method = { RequestMethod.POST })
public ModelAndView saveSection(@Valid @ModelAttribute Section section, BindingResult result) {
if(result.hasErrors()) {
return new ModelAndView("admin/editSection", "section", section);
}

如何将“值”限制为数字?如果我输入的不是数字,我会收到以下错误:

Failed to convert property value of type java.lang.String to required type java.lang.Integer for property value; nested exception is org.springframework.core.convert.ConversionFailedException: Unable to convert value "A" from type java.lang.String to type java.lang.Integer; nested exception is java.lang.IllegalArgumentException: Unable to parse A

我看到一些帖子提到了 initBinding,但我不确定如何使用它,或者它是否能帮助我。这个问题之前应该已经解决了。有什么方法可以保证在绑定(bind)之前是一个数字吗?

或者,如果有人可以发布正确的 messages.properties 条目来覆盖此错误,那也对我有用。

我尝试了@Pattern,但这不适用于整数

最佳答案

正如您所提到的,您需要在 messages.properties 中提供用户友好的消息。您可以使用以下消息代码之一(具有不同级别的选择性):

  • typeMismatch.section.value
  • typeMismatch.value
  • typeMismatch.int
  • 类型不匹配

另外,当您不知道消息代码时,您可以简单地打印 BindingResult - 它的 toString() 返回绑定(bind)错误的完整描述。

关于spring - JSR-303 绑定(bind)前的类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4082924/

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