/** 字典类型 */
@NotBlank(message = "字典类型不能为空")
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且字典类型只能由小写字母或加下划线还有数字组成")
@Size(min = 2, max = 200, message = "字典类型长度必须在2-200个字符之间")
private String dictType;
这块涉及的知识主要是 spring-validate
- @NotBlank: 不为null和空字符串
- @Pattern: 正则表达式
- @Size: 字符串长度
/**
* 新增字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:add')")
@Log(title = "字典类型", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDictType dict)
{
if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict)))
{
return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
}
dict.setCreateBy(getUsername());
return toAjax(dictTypeService.insertDictType(dict));
}
@Validated @RequestBody SysDictType 实现校验调用
附上常用注解参考
原文
芋道 Spring Boot 参数校验 Validation 入门 | 芋道源码 —— 纯源码解析博客 (iocoder.cn)
对应的 ExceptionHandler
/**
* 自定义验证异常
*/
@ExceptionHandler(BindException.class)
public AjaxResult handleBindException(BindException e)
{
log.error(e.getMessage(), e);
String message = e.getAllErrors().get(0).getDefaultMessage();
return AjaxResult.error(message);
}
/**
* 自定义验证异常
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e)
{
log.error(e.getMessage(), e);
String message = e.getBindingResult().getFieldError().getDefaultMessage();
return AjaxResult.error(message);
}
版权声明:本文为qq_39007838原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。