我是Spring和Rest端點的新手。Spring Rest RequestMethod.GET返回400錯誤請求@RequestParam required = true時丟失
我有一個控制器,它接受@RequestParam
並返回JSON Response
。
默認情況下,@RequestParam required = "true"
,這是我需要它。
我使用Spring 3.1.3
這是在控制器我GET方法:
@Controller
@RequestMapping("/path")
public class MyController{
@RequestMapping(value = "/search/again.do", method = RequestMethod.GET, produces = {
"application/json"
})
public ResponseEntity<?> find(@RequestParam(value = "test", required = true) final String test) {
return new ResponseEntity<String>("Success ", HttpStatus.OK);
}
}
當我把它打端點請求PARAM,這是我期待得到。
?例如:路徑/搜索/ again.do測試= YES
一切都是完美的。
這是我遇到的問題:
當我將用該值缺少獲取:
實例:路徑/搜索/ again.do
我得到一個400錯誤請求。可能這是正確的。
但我想達到的是。 GET請求中缺少所需的值時。
因爲我可以發送一個JSON響應@RequestParam
值測試缺失。
任何人都可以指導我如何實現這一點。
我不知道我錯過了什麼。
在此先感謝。
感謝您的反饋。我知道我可以改變那個required = false,一切都按照我想要的方式工作。但是我希望required = true CONDITION在那裏,當任何人使用端點不發送該值時,通過發送一個他忘記發送測試值的響應來驗證該請求。我不想保留它的虛假。這不可能嗎? – Aniks
設置'required = false'有什麼問題?如果參數丟失,該框架被設計爲拋出異常。如果你不想要這種行爲,那麼設置'required = false'並實現你自己的邏輯來處理它。 –
我只是覺得,當我要求的價值=假。我給一個人進入終點。我知道我可以使用javax驗證並添加一些@Valid並通過給出錯誤消息來處理它,但我不知道我是否可以在RequestParams上執行此操作。 – Aniks