使用休眠验证器的 Spring mvc 表单验证

Posted

技术标签:

【中文标题】使用休眠验证器的 Spring mvc 表单验证【英文标题】:Spring mvc form validation using hibernate validator 【发布时间】:2018-07-18 09:11:44 【问题描述】:

当用户在spring mvc的输入字段中输入空格并使用hibernate验证器验证时,如何以jsp形式显示自定义消息或删除整数字段的输入? 目前显示:

无法将 java.lang.String 类型的属性值转换为必需的 为财产 freePasses 键入 int;嵌套异常是 java.lang.NumberFormatException:对于输入字符串:“”

【问题讨论】:

在前端使用 bootsrap 或 jquery 验证器 是的,这是另一种选择,但是如果我想在控制器端使用 java 显示自定义消息怎么办? 使用@NotNull注解。 @NotNull 适用于 String 字段,根据需要显示自定义消息,但对于 int 字段仍显示相同:无法将 java.lang.String 类型的属性值转换为属性 freePasses 所需的 int 类型;嵌套异常是 java.lang.NumberFormatException: For input string: "" 使用包装类声明整数变量。参考***.com/questions/12211734/… 【参考方案1】:

使用 wrapper 类声明整数变量,以便 wrapper 类将空格转换为 null。

常见解决方法见下方链接

Hibernate validation annotation - validate that at least one field is not null

【讨论】:

以上是关于使用休眠验证器的 Spring mvc 表单验证的主要内容,如果未能解决你的问题,请参考以下文章

带有 i18n 消息的 Spring-MVC + RESTeasy 表单 bean 验证 (JSR 303)

Spring MVC 表单验证不适用于嵌套的复杂类型

Spring MVC 3 验证 - 找不到默认提供程序

Spring MVC表单验证

Spring 3 MVC:使用自定义验证器显示验证消息

Spring-MVC:需要最简单的表单处理、绑定和验证示例