绑定多个选项,其中选项值可能包含Spring 3中的逗号

时间:2013-06-11 18:49:18

标签: spring spring-mvc binding multi-select

当选项值包含逗号时,我们遇到绑定多个select元素的问题。我们尝试绑定StringList<String>,但两者都存在问题。

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

code=ABC
code=A,B
code=XYZ

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

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

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

1 个答案:

答案 0 :(得分:4)

我相信此帖子与您的问题有关:How to prevent parameter binding from interpreting commas in Spring 3.0.5?。此Spring问题也可能有所帮助:https://jira.springsource.org/browse/SPR-7963

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