在后台对前端输入的字符长度限制,例如xx名称长度不能超过30,若不做控制数据库会报500异常
作者:互联网
第一步:在属性上面加 @size()注解
import lombok.Data;
import lombok.NonNull;
import javax.validation.constraints.Size;
@Data
public class ModifyBean {
// 备注信息
@NonNull
private String remark;
// 规则id
@NonNull
private Integer ruleId;
// 规则配置json
private String configJson;
//规则名称
@NonNull
@Size(max = 30, message = "xx名称长度不能超过30")
private String ruleName;
}
第二步: @Validated 注解
@PostMapping(value = "/moxx")
@ApiOperation(value = "编辑xx", notes = "")
public Map<String, Object> modifyRule(@RequestBody @Validated ModifyBean bean,
HttpServletRequest request) {
第三步: 对抛出的异常进行进一步处理,否则会抛出一大堆异常栈信息。
在Spring 全局异常处理类中处理异常
@ControllerAdvice
public class GlobalExceptionHandler extends BaseController
@ResponseBody
@ExceptionHandler(MethodArgumentNotValidException.class)
public Map<String, Object> globalException(MethodArgumentNotValidException e, HttpServletRequest request) {
BindingResult bindingResult = e.getBindingResult();
String erroeMsg = "";
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
for (FieldError fieldError : fieldErrors) {
erroeMsg += fieldError.getDefaultMessage();
}
return failedResult(null, "参数校验不通过", erroeMsg, request, null, "Exception", e.getMessage(), null);
标签:String,会报,30,private,import,长度,public,NonNull 来源: https://blog.csdn.net/qq_30347133/article/details/121178124