对象使用注解判空处理:@NotNull、@RequestBody、@Valid和全局异常捕获反馈操作字段判空信息
实体类使用@NotNull注解进行判空处理
ClazzController添加@RequestBody 和 @Valid注解进行注释,实现实体对象自动校验。
最后在配置包下添加全局异常捕获处理:
import com.network.school.common.core.vo.RespResult;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* @description:全局Controller错误拦截处理
* @author: YangYang
* @time: 2021/11/2 19:31
*/
@ControllerAdvice
public class EntityExceptionHandler {
/**
* 处理验证信息返回
* @param ex
* @return
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public RespResult EntityBindException(MethodArgumentNotValidException ex) {
BindingResult bindingResult = ex.getBindingResult();
List<FieldError> errorList = bindingResult.getFieldErrors();
StringBuffer message = new StringBuffer();
errorList.stream().forEach((error)->{
message.append(error.getDefaultMessage()+",");
});
return RespResult.error(500,message.substring(0,message.length()-1).toString());
}
}
当请求参数为空的时候,界面就可以如下返回结果:
这样就可以做到@NotNull、@RequestBody、@Valid注解和全局异常捕获,这样就可以减少逻辑代码判空处理