情况一
data class User(val userName:String,val password:String)
@PostMapping("/signIn.do")
fun signIn(@RequestBody user: User):BaseResult{
logger.info(user)
return BaseResult.SuccessResult()
}
说明:当传入空Json串或json串中没有userName和password字段时,无法进入该controller,外部直接会拦截,抛出400错误
情况二
data class User(val userName:String="张三",val password:String)
说明:当实体类定义为上面的形式时,password为必填字段,只有password匹配情况一的说明,userName不传时会赋默认值,传入userName时会替换默认值
情况三
data class User(val userName:String="张三",val password:String?)
说明:定义为上面的形式时,没有必填字段,即任何字段都能为空,userName为空时会赋默认值,password为空时将为null
注意
上面的三种情况说明是针对字段的说明。如果请求时没有传入任何数据,即空字符串时,无论定义为上面的哪种形式,都会被拦截,不会进入controller,上面三种情况说明的‘空’是指字段的空。但是对象还是要传的,比如:
POST http://localhost:8080/signIn.do
Content-Type: application/json
{
}
- 错误举例(没有json串,会回传400错误):
POST http://localhost:8080/signIn.do
Content-Type: application/json