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