SpringBoot-kotlin中 data class中字段必填與否使用記錄

情況一

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容