Spring mvc 参数类型如何验证?

@RequestMapping("/test")
@ResponseBody
public String test(Long id){
    return id + "";
}

当请求传入参数不是数字的时候会返回400 Bad Request如何校验传入的这个参数?

阅读 4.6k
2 个回答

你的问题是“现状是,传入参数不是数字是就会返回400 Bad Request而你不知道为什么?”

还是,“你希望让传入参数不是数字时,自动返回400 Bad Request

补充:

那是不是可以这样改改,如果你用的是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里还是其他什么地方来)

那么纠结的话你就直接接收Object id 然后第一行代码判断id instanceof Long 开个玩笑。。
如果传进来的不是数字的话,应该是不会走到你的方法上的吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题