当选项值包含逗号时,我们遇到绑定多个select元素的问题。我们尝试绑定String
和List<String>
,但两者都存在问题。
发布多重选择元素时,每个选定选项的值将在单独的请求参数中传递,所有参数都具有相同的名称。例如,如果select元素名称是“code”,则参数可能如下所示:
code=ABC
code=A,B
code=XYZ
绑定到String
时,Spring会自动将这些值连接到以逗号分隔的字符串中。如果一个或多个值包含逗号,那么这显然是个问题。
绑定到List<String>
时,选择多个选项时工作正常。在这种情况下,Spring会为每个选定的选项创建一个List
条目。但是如果只选择了一个选项,Spring会假设该值是以逗号分隔的列表,并将其拆分为多个条目。
有没有办法告诉Spring在绑定到String
时使用与逗号不同的字符?有没有办法告诉Spring在绑定到List<String>
时不要拆分单个值?或者还有另一种方法可以解决这个问题吗?
答案 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配置中。