springmvc之JSR303获取验证错误消息

在比较新的一个版本中,springmvc加入了JSR303这样一个数据校验的框架,通过这个我们可以在后台验证用户输入的一些数据是否合法,如果不合法,我们可以获取相应的错误消息:

那么,在使用JSR303获取错误消息的时候,我们应该要注意些什么呢?

以下是其中的一点:

   获取错误消息的时候,在方法入参的位置, 可以加入BindingResult或者Errors作为其中的一个参数,这个入参必须与待验证的方法发入参相邻。比如:

@RequestMapping("/testFormat")
public String testFormat(@Valid User user,  BindingResult result) {

	// 获取所有错误
	// if (result.getErrorCount() > 0) {
	// List<ObjectError> errors = result.getAllErrors();
	// for (ObjectError error : errors) {
	// System.err.println(error.getDefaultMessage());
	// }
	// }

	// 获取字段的错误消息
  if (result.getFieldErrorCount() > 0) {
	List<FieldError> fieldErrors = result.getFieldErrors();
	 for (FieldError fieldError : fieldErrors) {
		 System.out.println(fieldError.getField() + ":" + fieldError.getDefaultMessage());// 获取错误消息的详细内容
		}
	}
	System.out.println(user);
	return "success";
}

这样我们就可以获得用户输入的一些参数是否合法,如果不合法,就输入相关的信息:

如果在入参的位置还有其他参数的时候,就要注意其中的写法了:如果像以下这样写是不正确的,会报400错误:

public String testFormat(@Valid User user,Map<String, Object> map, BindingResult result) {

}

因为:其中要验证的是User,但是与User相邻的却是Map,而不是BindingResult,所以会包400错误。

所以正确的写法应该是:

public String testFormat(@Valid User user, BindingResult result,Map<String, Object> map) {

//*****
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值