情況一
data class User(val userName:String,val password:String)
@PostMapping("/signIn.do")
fun signIn(@RequestBody user: User):BaseResult{
logger.info(user)
return BaseResult.SuccessResult()
}
說(shuō)明:當(dāng)傳入空J(rèn)son串或json串中沒(méi)有userName和password字段時(shí),無(wú)法進(jìn)入該controller,外部直接會(huì)攔截,拋出400錯(cuò)誤
情況二
data class User(val userName:String="張三",val password:String)
說(shuō)明:當(dāng)實(shí)體類(lèi)定義為上面的形式時(shí),password為必填字段,只有password匹配情況一的說(shuō)明,userName不傳時(shí)會(huì)賦默認(rèn)值,傳入userName時(shí)會(huì)替換默認(rèn)值
情況三
data class User(val userName:String="張三",val password:String?)
說(shuō)明:定義為上面的形式時(shí),沒(méi)有必填字段,即任何字段都能為空,userName為空時(shí)會(huì)賦默認(rèn)值,password為空時(shí)將為null
注意
上面的三種情況說(shuō)明是針對(duì)字段的說(shuō)明。如果請(qǐng)求時(shí)沒(méi)有傳入任何數(shù)據(jù),即空字符串時(shí),無(wú)論定義為上面的哪種形式,都會(huì)被攔截,不會(huì)進(jìn)入controller,上面三種情況說(shuō)明的‘空’是指字段的空。但是對(duì)象還是要傳的,比如:
POST http://localhost:8080/signIn.do
Content-Type: application/json
{
}
- 錯(cuò)誤舉例(沒(méi)有json串,會(huì)回傳400錯(cuò)誤):
POST http://localhost:8080/signIn.do
Content-Type: application/json