Spring mvc 空数组作为默认值

Posted

技术标签:

【中文标题】Spring mvc 空数组作为默认值【英文标题】:Spring mvc empty array as a default value 【发布时间】:2013-01-22 20:50:32 【问题描述】:

我有一个 spring 控制器方法,它接收一些可选数组作为参数。它们不是必需的,但我希望它们不为空,而当它们不在控制器方法接收的参数中时只是空数组。我知道,我可以检查它们是否为空,然后分配为新对象,但这会生成大量样板代码。另外,当我尝试做这样的事情时:

@RequestMapping(headers = "Accept=application/json", method = RequestMethod.GET, value = "/socialUsers/saveFilter", produces = "application/json")
public @ResponseBody
void saveFilterToDataBase(@RequestParam(required = false, value = "gender", defaultValue = "") Gender[] genders)

....

我收到第 400 个错误,当我没有在 url 中提供参数时,这很奇怪,因为必填字段为 false。

你们有什么想法吗?

【问题讨论】:

可能是默认值? 好吧,我在 Google 中找到了这个解决方案,但实际上它不起作用。它甚至没有在调试模式下进入控制器方法。当我不使用此默认值时,数组为 null 并且在逻辑中引发异常。检查它是否为 null 不是一种方法,因为我有 6 个数组作为参数传递。 【参考方案1】:

找到了解决办法。默认的空数组值只是“”。但问题是即使参数不是必需的,它也会抛出第 400 个错误。诡异的。正在努力。

【讨论】:

你找到解决办法了吗? @denu,默认的空数组值就是" ",所以你写value="" 是带空格的字符串还是空字符串?

以上是关于Spring mvc 空数组作为默认值的主要内容,如果未能解决你的问题,请参考以下文章

空数组作为 active_record 序列化属性的默认值

从用户默认值加载数据时,我得到一个空的 CLLocationCoordinates 数组

我可以在 Spring MVC 的 RequestMapping 中为路径变量设置默认值吗?

Spring Boot 和 MVC:如何从 application.properties 为 @RequestBody 对象字段设置默认值?

空字典作为 dict.get() 的默认值

Pyspark 数组列 - 用默认值替换空元素