【SpringBoot】参数验证validation

本文介绍了如何在SpringBoot项目中使用validation组件进行参数验证。包括引入依赖、使用注解进行字段验证及控制器中处理验证错误的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录下在springboot上使用validation作为参数验证的效果。

1.首先需要引入依赖,这里我引入的是2.3.4版本。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
    <version>2.3.4.RELEASE</version>
</dependency>

2.在需要做验证的属性上加上对应的注解,我这里加的是@NotNull,判断该字段不能为Null,这样一来在service中省略了判断逻辑。

@NotNull(message = "cloudTestOrderId不能为空")
private Long cloudTestOrderId;

3.在controller中返回参数验证的错误信息,这里我没找到合并所有属性错误信息的方法,所以逻辑只能是这么写,有点繁琐,知道怎么处理更好的朋友记得留言帮助我哈。

@RequestMapping(value = "queryCloudTestResultInfoData", method = RequestMethod.POST)
@ResponseBody 
public AjaxResult queryCloudTestResultInfoData(Page<CloudTestResultInfoStatusDto> page
			, @RequestBody @Validated ParamsResultInfoStatusDto params, BindingResult result) {
		if (result.hasErrors()) {
			StringBuffer errorMessage = new StringBuffer();
			List<FieldError> fieldErrors = result.getFieldErrors();
			for(FieldError error : fieldErrors) {
				errorMessage.append(error.getDefaultMessage() + "|");
			}
			return new AjaxResult(Status.ERROR.getValue(), errorMessage.toString());
		}
		IPage<CloudTestResultInfoStatusDto> infoStatusDtoPageResult
				= cloudTestOrderService.queryCloudTestResultInfoData(page, params);
		return new AjaxResult(Status.SUCCESS.getValue(), infoStatusDtoPageResult);
	}

还有就是入参的时候需要在参数接收的类前面要加上@Validated注解,并且后面要跟上BindingResult。

result.getFieldErrors()返回的是所有字段的错误验证信息,只有验证错误才会有。

error.getDefaultMessage()返回的就是属性注解里面的message了。

END...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值