Spring Mvc注解@Validated表单数据校验

在我们日常开发的过程中有时候对于同一个表单的数据校验是不同的,但是仅仅在前端使用非空检验或者不使用非空校验是不够完整的,在一些情况下不仅在前端需要进行数据校验,同样后端也是需要的,但是由于表单的使用场景,不同的时候对于同一个表单的数据校验是不同的,所以使用 ------- 使用分组校验来区分不同情况下的非空校验

  1. 首先定义一个接口
public interface InsertValidated{

}

2.在实体的对应属性上添加注解

groups = {InsertValidated.class}表明这个字段在只有分组属于 InsertValidated 这个接口的时候才进行数据校验,其他情况下不影响

	@NotBlank(message="姓名为空",groups = {InsertValidated.class})
	private String name;

	@NotBlank(message="手机为空",groups = {InsertValidated.class})
	private String phone;

	@NotBlank(message="介绍为空",groups = {InsertValidated.class})
	@Size(max = 500,message = "介绍不能超过200字")
	private String description;
	
	private String qq;
  1. controller接口接收数据时只需要标注当前接收的这个实体需要被校验即可,BindingResult 一定要写在接口的参数中,@Validated 数据校验的结果会保存在BindingResult 之中,
package org.springframework.validation.annotation;
package org.springframework.validation;


	/**
	 * 增加接口
	 */
	@PostMapping("/save")
	@ResponseBody
	public Object save(@RequestBody  @Validated(value = {InsertValidated.class}) Student stu, BindingResult result) {

		/**
		 * 数据校验
		 */
		if(result.hasErrors()) {
		sout(result.getFieldError().getDefaultMessage())
		}
		
     }

  1. 数据校验的结果错误信息即为实体中所标注的 @NotBlank(message=“手机为空”,groups = {InsertValidated.class}),message中的信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值