Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java REST RequestParam可选参数_Java_Spring_Rest - Fatal编程技术网

Java REST RequestParam可选参数

Java REST RequestParam可选参数,java,spring,rest,Java,Spring,Rest,我有一个接口方法,可以调用如下- {{url}}/packageName/{{var}}/list 它可以接收类型为Collection的参数,因此我可以获取特定的结果 {{url}}/packageName/{{var}}/list?paramIds=param1&paramIds=param2 现在,如果我将paramIds保留为空,如下所示,Spring MVC将创建LinkedHashMap,大小为0,并且我不会得到任何结果 {{url}}/packageName/{{var

我有一个接口方法,可以调用如下-

{{url}}/packageName/{{var}}/list
它可以接收类型为
Collection
的参数,因此我可以获取特定的结果

{{url}}/packageName/{{var}}/list?paramIds=param1&paramIds=param2
现在,如果我将paramIds保留为空,如下所示,Spring MVC将创建
LinkedHashMap
,大小为0,并且我不会得到任何结果

{{url}}/packageName/{{var}}/list?paramIds=
这是我的注释
@RequestParam(value=“paramIds”,required=“false”)集合paramIds

我试图摆脱
required
并使用
defaultValue
,但无法将
defaultValue
设置为
null

现在,我将注释更改为
@RequestParam(value=“paramIds”,defaultValue=“none”)
,并在dao中添加了将“none”处理为null的代码——我想知道是否有更好的方法来解决这个问题


提前谢谢。

我觉得Spring给了你最好的选择,空列表通常比空列表好

我的第一个选择是修改DAO代码以处理空列表,而不是预期为null,但假设这不可能,为什么不在控制器中进行检查,以便在集合为空时将null传递给DAO,如:

if (paramsIds.isEmpty()) {
  dao.doSomething(null);
}

我觉得Spring给了你最好的选择,空列表通常比空列表好

我的第一个选择是修改DAO代码以处理空列表,而不是预期为null,但假设这不可能,为什么不在控制器中进行检查,以便在集合为空时将null传递给DAO,如:

if (paramsIds.isEmpty()) {
  dao.doSomething(null);
}

如果你没有得到结果,你必须让你的逻辑更聪明。如果
paramIds
集合为空,则应该忽略它,而不是简单地传递它。因此,不要检查
none
而是检查一个空列表。不清楚“问题”是什么现在,如果我将paramIds保留为空,如下所示,Spring MVC将创建大小为0的LinkedHashMap,但我没有得到任何结果。感谢我在dao中添加了空列表检查,这是愚蠢的,如果你没有得到结果,你必须使你的逻辑更智能。如果
paramIds
集合为空,则应该忽略它,而不是简单地传递它。因此,不要检查
none
而是检查一个空列表。不清楚“问题”是什么现在,如果我将paramIds保留为空,如下所示,Spring MVC将创建大小为0的LinkedHashMap,但我没有得到任何结果。感谢我在dao中添加了空列表检查,这是SillTanks我在dao中添加了空列表检查,这是SillTanks