springmvc JSR 303服务器端参数校验异常之HV000030: No validator could be found for type: java.lang.Integer.

1、异常描述

springmvc 中,支持服务器端的参数校验,例如可以控制参数不能为空,长度,或者可以控制时间类型的参数不能选择一个过去的时间等...

其中,hibernate针对JSR 303 进行了实现。

 

但是,使用的时候出现异常:

HV000030: No validator could be found for type: java.lang.Integer.

 

2、错误原因分析

出错的原因:

是因为我在Integer类型的属性上添加@NotNull注解。

@NotNull可以用来验证String类型的参数

@Past可以用来验证Date类型的日期

@Length可以验证长度等...

 

3、解决方法

正确的做法:

public class User {

	private Integer id;
	
	@NotEmpty(message="用户名不能为空")
	private String username;
	@NotNull(message="密码不能为空")
	@Length(min=6,max=10,message="密码长度在6~10之间" )
	private String userPassword;
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Past(message="必须是一个过去的时间")
	private Date birthday;

    // ... 

}

建议在使用这些注解的时候,还是看它验证的数据类型是哪种,这样可以避免出错

 

此文希望可以帮助到大家。如有错误,请指教。                                                           

如果大家还有其他的情况或者好的解决方法,也望指教,感谢阅读。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值