Spring MVC的请求映射明确禁止参数(Spring MVC request mapping e

2019-07-30 05:37发布

我正在为春季(3.1)作图难题:我有一个简单,方法的findAll:

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

这将映射在以下URI(这是很好的): /user

:但是它也映射在/user?bla=8 ,这是不好的。

有没有办法来明确指定该特定映射不包含任何参数的事实? 我试图指定params@RequestMapping但我可以看到这样做的没有明确的办法。

任何帮助表示赞赏。

谢谢。 尤金。

Answer 1:

您可以在否定参数@RequestMapping.param属性。

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

随着春天的3.1你不能明确禁止的要求有参数。

但说实话这是很少有必要。

有三种使用情况:

  1. bla是一个已知的参数,你可以明确地允许/禁止。
  2. bla是未知参数,可以忽略。
  3. 要处理与一种特殊的方式未知参数(抛出例如错误)的请求。

前两个可以在Spring MVC来完成。 第三个,据我所知,不能。

第三个选项也为你必须非常小心,客户端可以发送到您的服务器的参数潜在危险(如通过材料的安全框架添加等)。



文章来源: Spring MVC request mapping explicitly disallowing parameters