AdSense

網頁

2026/2/2

Spring Boot Controller接收不到請求主體參數

Spring Boot Controller接收不到參數的問題。


在2026年的現在你的Spring Boot Controller收不到請求主體參數,八成是因為你用IDE的快速鍵自動import時的@RequestBody引用錯誤,預設都是用到Swagger (Open API)的io.swagger.v3.oas.annotations.parameters.RequestBody,而非Spring的org.springframework.web.bind.annotation.RequestBody


這問題近半年踩了3次,一開始都在檢查JSON對不對,DTO or Bean欄位有沒有漏,getter setter有沒有寫,無參數建構式有沒有寫,該卦的annotation有沒有寫,有沒有被filter濾掉,被validator擋掉,token有沒有帶,前端Ajax有沒有送資料,contentType有沒有正確,有沒有JSON.stringify(),有沒有抓到input欄位的值,查了一圈才發現是import到錯誤的@RequestBody,過程花了1-2個小時。這種編譯和執行都不會拋錯的錯誤叫「靜默失敗」(silent failure)。

沒有留言:

AdSense