2017-02-15 53 views
0

如果客戶端發送任何意外的請求參數,如何讓Spring @Controller返回400狀態碼?如何使Spring Controller檢測意外的請求參數

例如,我有這樣的

public ResponseEntity<String> recommend(
     @RequestParam(value = "max-age-seconds", required = false) Long maxAgeSeconds) { 
     ... 
    } 

客戶端也可以在max-age-seconds一個錯字,這我的應用程序將無法識別,然後退回到默認的最高年齡,我選擇在稍後的時間。

我知道我可以通過request.getParameterNames()獲得所有請求參數的列表並逐個檢查,但我正在尋找一個更整潔,更有效的解決方案。

編輯:我剛剛發現,4年前它didn't have a built-in solution,我不知道它是否仍然如此。

+0

我不認爲有更好的解決方案...你需要循環通過請求params和chek,如果有意外的參數。 – davioooh

回答

0

那麼你打電話方法request.getParameterMap(),然後檢查你的地圖的大小是1的關鍵等於「max-age-seconds」,你甚至可以驗證該值,如果你願意。如果您的任何驗證出錯,則返回400(或可能是300,並顯示錯誤消息「This is Sparta!」)。 (最後一部分是一個笑話...)

相關問題