如何检查spring RestController的未知查询参数?


问题内容

我有一个基本的rest控制器,需要参数。

如果查询字符串包含未定义的参数,如何拒绝连接?

@RestController
@RequestMapping("/")
public class MyRest {
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
    @ResponseBody
    public String content(@PathVariable id, @RequestParam(value = "page", required = false) int page) {
        return id;
    }
}

localhost:8080/myapp/123?pagggge=1

当前,在调用此url时,仅使用id执行该方法,而paggge忽略未知参数。一般来说,这很好,但是如何验证它们并返回HTTP状态代码?


问题答案:

添加HttpServletRequest request方法参数,执行

String query = request.getQueryString()

在方法主体中进行验证。