用于获取可变请求参数的过载Spring Controller方法

时间:2015-09-01 17:38:58

标签: java spring spring-mvc

我正在尝试在spring中创建一个重载的控制器方法,用于过滤,允许多个请求参数。我在这里找到的一些答案通过识别注释中传入的请求参数来提供解决方案,但是,这不足以满足我的需求,因为我接受了多个参数来过滤并且不想要声明所有这些都是请求参数。

这是一个例子:

@RequestMapping( method=RequestMethod.GET )
public List<JSONRepresentation> getJSONRepresentation( 
    @RequestParam Map<String, String> filterParams ) throws ObjectNotFoundException
    {
        // DO STUFF AND FILTER ON VALID PARAMETERS.
    }

@RequestMapping(method = RequestMethod.GET)
public List<JSONRepresentation> getJSONRepresentation() throws ObjectNotFoundException
    {
        // DO STUFF AND RETURN ALL.
    }

尝试实现此功能,而无需添加其他值,如&#34; / filter&#34;到URL

1 个答案:

答案 0 :(得分:3)

实际上,这样的可能性不大。您可以做什么将filterParams设置为可选,并为每个案例做出逻辑:

@RequestMapping( method=RequestMethod.GET )
public List<JSONRepresentation> getJSONRepresentation( @RequestParam(required=false) Map<String, String> filterParams ) throws ObjectNotFoundException
{
   if(filterParams != null) {
    // DO STUFF AND FILTER ON VALID PARAMETERS.
   } else {
   // DO STUFF AND RETURN ALL.
   }

}