@RequestMapping("/test") @ResponseBody public String test(Long id){ return id + ""; }
当请求传入参数不是数字的时候会返回400 Bad Request如何校验传入的这个参数?
400 Bad Request
走同样的路,发现不同的人生
你的問題是「現狀是,傳入參數不是數字是就會回傳400 Bad Request而你不知道為什麼?」
還是,「當你希望讓傳入參數不是數字時,自動回傳400 Bad Request」
補充:
那是不是可以這樣改改,如果你用的是spring4的話:
spring4
@RequestMapping("/test") @ResponseBody public String test(@RequestParam("id") Long id, BindingResult result){ if (result.hasErrors()) { return "返回你想返回的"; } return id + ""; }
好久沒寫了,應該ok吧
好像顯示指定@Valid之类的注解的,你得仔细查查spring的文档,我实在不确定annotation是不是我写的这个@RequestParam(取決於你的參數是從url還是其他什麼地方來)
@Valid
spring
annotation
@RequestParam
那麼糾結的話你就直接接收Object id 然后第一行代码判断id instanceof Long 開個玩笑。 。 如果傳進來的不是數字的話,應該是不會走到你的方法上的吧。
Object id
id instanceof Long
你的問題是「現狀是,傳入參數不是數字是就會回傳
400 Bad Request
而你不知道為什麼?」還是,「當你希望讓傳入參數不是數字時,自動回傳
400 Bad Request
」補充:
那是不是可以這樣改改,如果你用的是
spring4
的話:補充:
好像顯示指定
@Valid
之类的注解的,你得仔细查查spring
的文档,我实在不确定annotation
是不是我写的这个@RequestParam
(取決於你的參數是從url還是其他什麼地方來)那麼糾結的話你就直接接收
Object id
然后第一行代码判断id instanceof Long
開個玩笑。 。如果傳進來的不是數字的話,應該是不會走到你的方法上的吧。