Spring MVC请求映射明确禁止参数
我遇到了Spring(3.1)映射难题:我有一个简单的findAll方法:
@RequestMapping( method = RequestMethod.GET ) @ResponseBody public List findAll(){ return findAllInternal(); }
这映射在以下URI(这是好的): /user
。
但它也映射到: /user?bla=8
,这不好。
有没有办法明确指出这个特定的映射不包含参数的事实? 我试图在@RequestMapping
指定params
,但我看不出这样做的明确方法。
任何帮助表示赞赏。
谢谢。 尤金。
您可以否定@RequestMapping.param
属性中的参数。
@RequestMapping( method = RequestMethod.GET, params = "!bla")
从春季3.1开始,您无法明确禁止请求获取参数。
但说实话,这很少是必要的。
有三种用例:
-
bla
是一个已知参数,您可以明确允许/禁止。 -
bla
是未知参数,可以忽略。 - 您希望以特殊方式处理具有未知参数的请求(例如,抛出错误)。
前两个可以在spring mvc中完成。 第三个,AFAIK,不能。
第三种选择也有潜在危险,因为您必须非常小心客户端可以发送到服务器的参数(例如安全框架添加的内容等)。