有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring MVC请求映射明确禁止参数

我遇到了一个Spring(3.1)地图难题: 我有一个简单的findAll方法:

@RequestMapping( method = RequestMethod.GET )
@ResponseBody
public List< User > findAll(){
    return findAllInternal();
}

这映射到以下URI(这很好):/user

然而,它也映射到:/user?bla=8,这并不好

有没有办法明确指定这个特定映射不包含参数的事实? 我试图在@RequestMapping中指定params,但我看不到明确的方法

感谢您的帮助

谢谢。 尤金


共 (1) 个答案

  1. # 1 楼答案

    可以对@RequestMapping.param属性中的参数求反

    @RequestMapping( method = RequestMethod.GET, params = "!bla")
    

    从spring 3.1开始,您不能明确禁止请求包含参数

    但说实话,这几乎没有必要

    有三个用例:

    1. bla是一个已知参数,可以显式允许/禁止
    2. bla是未知参数,可以忽略
    3. 您希望以特殊的方式处理带有未知参数的请求(例如抛出错误)

    前两个可以在spring mvc中完成。第三个,阿福,不行

    第三个选项也有潜在的危险,因为您必须非常小心客户端可以发送到服务器的参数(例如安全框架添加的内容等)