2

We are having an issue with binding a multiple select element when the option values contain commas. 我们尝试绑定到 aString和 a List<String>,但两者都有问题。

当发布多选元素时,每个选定选项的值都会在一个单独的请求参数中传递,它们都具有相同的名称。例如,如果选择元素名称为“code”,则参数可能如下所示:

code=ABC
code=A,B
code=XYZ

当绑定到 aString时,Spring 会自动将这些值连接成一个逗号分隔的字符串。如果一个或多个值包含逗号,这显然是一个问题。

绑定到 aList<String>时,选择多个选项时一切正常。在这种情况下,Spring 会List为每个选定的选项创建一个条目。但是如果只选择了一个选项,Spring 会假定该值是一个逗号分隔的列表,并将其拆分为多个条目。

有没有办法告诉 Spring 在绑定到 a 时使用与逗号不同的字符String?有没有办法告诉 Spring 在绑定到 a 时不要拆分单个值List<String>?或者还有其他方法可以解决这个问题吗?

4

1 回答 1

4

我相信这个线程与您的问题有关:如何防止参数绑定在 Spring 3.0.5 中解释逗号?. 这个 Spring 问题也可能有帮助:https ://jira.springsource.org/browse/SPR-7963

https://stackoverflow.com/a/5239841/1259928提供的解决方案详细说明了如何创建一个使用不同字符串分隔符的新转换服务并将其连接到 Spring 配置中应该可以解决问题。

于 2013-06-13T13:04:36.650 回答