我们在日常开发中经常会使用
if
语句来判断请求参数,如果要判断的参数较多,会造成大面积代码都在写判断,“实际业务三行,条件判断三十行”,哈哈,开玩笑
常用方式
...
if (StringUtils.isBlank(xxx1)) {
return ServerResponse.createByErrorMessage("xxx1不能为空");
}
if (StringUtils.isBlank(xxx2)) {
return ServerResponse.createByErrorMessage("xxx2不能为空");
}
if (StringUtils.isBlank(xxx3)) {
return ServerResponse.createByErrorMessage("xxx3不能为空");
}
...
简洁的注解验证方式
写个小例子来演示一下
实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TestEntity implements Serializable {
@NotBlank(message = "name不能为空")
private String name;
@NotBlank(message = "add不能为空")
private String add;
@NotBlank(message = "phone不能为空")
private String phone;
}
实现方式
@SpringBootApplication
@RestController
public class DemotestApplication {
public static void main(String[] args) {
SpringApplication.run(DemotestApplication.class, args);
}
/**
* 使用注解验证字段
*/
@PostMapping("/test")
public ServerResponse test(@Validated TestEntity testEntity, BindingResult br) {
if (br.hasErrors()) {
// br.getFieldError().getDefaultMessage():获取错误信息
return ServerResponse.createByErrorMessage(br.getFieldError().getDefaultMessage());
}
return ServerResponse.createBySuccess(testEntity);
}
}
使用postman测试
注:文中的ServerResponse
类是用于前后端传递的工具类,百度上很多~