如何使Spring Controller检测意外的请求参数

时间:2017-02-15 16:45:00

标签: java spring spring-mvc spring-boot

如果客户端发送任何意外的请求参数,如何使Spring @Controller返回400状态代码?

例如,我有这个

    public ResponseEntity<String> recommend(
        @RequestParam(value = "max-age-seconds", required = false) Long maxAgeSeconds) {
        ...
    }

客户端可能会在max-age-seconds中输入错字,我的应用程序无法识别,然后回退到我以后选择的默认最大年龄。

我知道我可以使用request.getParameterNames()获取所有请求参数的列表并逐个检查,但我正在寻找更整洁,更有效的解决方案。

编辑:我刚刚发现4年前didn't have a built-in solution,我想知道是否仍然如此。

1 个答案:

答案 0 :(得分:0)

如何调用方法request.getParameterMap(),然后检查地图的大小是否为1,键等于“max-age-seconds”,如果您愿意,您甚至可以验证该值。如果您的任何验证出错,则返回400(或者可能是300,错误消息“这是斯巴达!”)。 (最后一部分是个笑话......)