"code"
:
3
,
"content"
:
null
,
"msg"
:
"Validation failed for argument at index 0 in method: public com.gdata.base.facade.R com.gdata.biz.dataset.controller.DatasetTeamMemberController.create(com.gdata.biz.dataset.controller.TeamUser), with 1 error(s): [Field error in object 'teamUser' on field 'teamRole': rejected value [0]; codes [Range.teamUser.teamRole,Range.teamRole,Range.java.lang.Integer,Range]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [teamUser.teamRole,teamRole]; arguments []; default message [teamRole],2,1]; default message [所选角色不合法]] "
解决:设置全局异常捕获,里面返回值使用e.getBindingResult().getFieldError().getDefaultMessage()
* 参数校验错误
* @param e
* @return
@ExceptionHandler
(
MethodArgumentNotValidException
.
class
)
public
R
<
String
>
argumentValidException
(
MethodArgumentNotValidException e
)
{
log
.
error
(
e
.
getMessage
(
)
,
e
)
;
return
R
.
error
(
e
.
getBindingResult
(
)
.
getFieldError
(
)
.
getDefaultMessage
(
)
)
;
@NotNull:验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank:检查约束 (字符串) 是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格
@NotEmpty:检查(集合)约束元素是否为NULL或者是EMPTY
@Size(min=,max=):验证对象(Array,Collect
ion
,Map,String)长度是否在
进行方法参数验证时,参数验证失败。在使用 Spring Boot 时,可能由于自动配置或者属性配置的问题导致验证失败。如果使用了特定版本的验证框架,可能会存在与其他组件不兼容的问题。使用自定义验证注解时,自定义验证逻辑未通过导致验证失败。当验证日期类型的参数时,传递的日期字符串格式不符合预期。当传递的参数是一个对象时,对象的属性未通过验证。当使用分组验证时,传递的参数未指定正确的验证组。如果选择的验证注解不符合验证的需求,可能导致。传递的数据结构与方法参数的期望结构不匹配。如果方法参数有多个验证失败,
Method
Argument
Not
Valid
Exception
异常
同样也有两种
处理
方式继承org.springframework.web.servlet.mvc.
method
.annotat
ion
.ResponseEntity
Exception
Handler 类,重写 handle
Method
Argument
Not
Valid
() 方法通过 @
Exception
Handler 注解指定要
处理
的
异常
,并在
处理
方法中
处理
不同的参数校验方式会产生不同的
异常
。
通过使用验证注解、控制器中的
异常
处理
方法或全局
异常
处理
器,有效地捕获和
处理
验证错误,并向客户端返回友好的错误信息。通常在使用 Spring MVC 或 Spring Boot 时,当请求体中的数据未通过验证注解(如。假设你有一个 REST 控制器,它接收一个包含验证注解的对象作为请求体。等)的检查时,会抛出此
异常
。字段的长度小于 2 个字符,是 Spring 框架中。
@PostMapping("/up
dat
e")
@RequiresPermiss
ion
s("user:up
dat
e")
public
R up
dat
e(@RequestBody @
Valid
UserEntity user) {
userService.up
dat
e(user);
return R.ok();
当使用注解进行参数校验时,如果参数违反了约束条件(例如,@NotNull、@Size、@Pattern等),就会抛出 ConstraintViolat
ion
Exception
异常
。
Method
Argument
Not
Valid
Exception
和ConstraintViolat
ion
Exception
都是用于
处理
参数校验
异常
的
异常
类,但它们在不同的上下文中使用。- 通常,该
异常
是在控制器(Controller)中接收到请求参数后发生的,它包含了关于哪个参数违反了约束条件以及相应的错误消息。
如果你熟悉原来一系列的构建工具,grunt或者gulp之类的,这里有一篇webpack和他们比较的文章可以读一读。 Webpack
Com
pared
先装好node和npm,因为webpack是一个基于node的项目。然后
npm install -g webpack
官网对webpack的定义是MODULE BUNDLER,他的目的就是把有依赖关系...