在我的控制器中,我有String參數,包含一些id,不應該爲空字符串。我想知道,有沒有什麼辦法來檢查它不是空的@RequestMapping參數中的字符串? 我試圖在某些方面解決它如何檢查請求參數是否爲空@RequestMapping參數中的字符串?
@RequestMapping(value = someURL, params = {"id"})
public SomeResponse doSomething(@RequestParam(required = true) String id)
@RequestMapping(value = someURL, params = {"!id="})
public SomeResponse doSomething(@RequestParam(required = true) String id)
@RequestMapping(value = someURL, params = {"!id=\"\""})
public SomeResponse doSomething(@RequestParam(required = true) String id)
沒有成功。 據我所知,params = {"id"}
和@RequestParam(required = true)
只能檢查參數id
在請求(!= null)中出現。
這是最有可能的,我必須檢查與控制器欽傑代碼,就像
if (id == null || id.isEmpty()) {
return someErrorResponse;
}
,但如果我錯了,請大家指正。 在此先感謝。
P.S.我的應用程序在Apache Tomcat 7.0.62容器上的Java 1.7 SE上運行
我注意到'required = true'甚至不是必須的,因爲當我離開標題字段時,我得到了狀態400:'{「status」:400,「error」:「Bad Request」,「exception」:「 org.springframework.web.bind.ServletRequestBindingException「,」message「:」Missing request header'X-Custom-Header'for method parameter of String「,」path「:」/ api /「}' – user3105453
謝謝,我想這是我需要的。當我按照你提出的方式定義註釋時,在控制器方法的開始處放置斷點並進行測試,我沒有進入控制器方法; b)得到自我解釋的異常org.springframework.web.bind.UnsatisfiedServletRequestParameterException:實際請求參數未滿足參數條件「id!=」:id = {}。 – WeGa