@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
开个玩笑。。如果传进来的不是数字的话,应该是不会走到你的方法上的吧。