社区首页 >问答首页 >Spring绑定逗号分隔列表到多选择

Spring绑定逗号分隔列表到多选择
EN

Stack Overflow用户
提问于 2010-09-07 13:47:53
回答 1查看 3.3K关注 0票数 2

tl;博士:我有一个自定义对象,它不是集合。如何让Spring将其绑定到多个选择?

我有一个对象Field,它包含一个名为value的字段,它是一个带有getter和setter的字符串。有时,value字段包含一个值,这些值将显示在文本框中。其他时候,value字段将包含逗号分隔的列表,需要在多个选择框中显示。

我有这些字段的映射(例如,我得到的{"MY_MULTI_FIELD", Field.class}如下所示:

文本

代码语言:javascript
代码运行次数:0
复制
  <form:input maxlength="200" path="fields[MY_TEXT_FIELD]" disabled="${springIsDisabled}" />

多重选择

代码语言:javascript
代码运行次数:0
复制
<form:select cssClass="required" path="fields[MY_MULTI_FIELD]" items="${blah}" size="5" multiple="true" disabled="${springIsDisabled}" />

我在我的控制器中注册了一个FieldEditor

代码语言:javascript
代码运行次数:0
复制
binder.registerCustomEditor(Field.class, new FieldEditor());

看上去像这样

代码语言:javascript
代码运行次数:0
复制
public class FieldEditor extends PropertyEditorSupport {

  @Override
  public String getAsText() {
    Field field = (Field) getValue();
    return field.getValue();
  }

  @Override
  public void setAsText(String text) throws IllegalArgumentException {
    setValue(text);
  }

}

在我只有一个文本字段的情况下,效果很好。另外,如果只选择了多个选择框中的一个项,它就可以正常工作。

问题是当我们从多个选择框中选择多个项目时。当我们在保存后查看表单时,它看起来不像是从multiselect中选择了任何值。getAsText()返回逗号分隔的字符串,当然它不匹配任何一个选项值的值,而是几个选项值的组合。

例如,如果我们选择

<option value="test">Test</option> <option value="test2">Test2</option>

value字段是"test,test2“。

如何让Spring理解如果选项值包含在逗号分隔的字符串中,那么应该选择它。

EN

回答 1

Stack Overflow用户

发布于 2010-09-07 20:48:52

我认为模型对象Field没有正确的结构来进行多个选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3663027

复制
相关文章
Hive之导出文件按逗号分隔到本地文件
    如下所示,默认导出的是用\t分隔的,需要使用管道符进行转换,经常使用到,记录下.
克虏伯
2020/02/14
2.3K0
Js数字千分位逗号分隔
console.log(change(12345.67)) function change(num) { var str = num.toString() v
明知山
2021/04/07
5.7K0
CSV逗号分隔值格式文件(示例分析)
CSV全称Comma Separated Values是"逗号分隔值"的英文缩写.通常是纯文本文件,可以被文本编辑软件,Excel或WPS表格打开. 基本规则 开头不留空,以行为单位; 列名(标题)放在第一行(可忽略不加列名); 每一行数据以换行结束,无空行; 以半角逗号作分隔符,列为空也要表达其存在; 列内容如存在半角逗号则用半角引号("")将该字段值包含起来; 列内容如存在半角引号则需要使用半角双引号("")转义,并用半角引号("")将该字段值包含起来; 文件读写时引号,逗号操作规则互逆; 内码格式不限
Qt君
2019/07/15
3.5K0
java里面逗号分隔的字符串转list
目录 逗号分隔的字符串转list 逗号分隔的字符串转list //逗号分隔的字符串转list public static List<String> getListStr(String str) { String[] strs = str.split(","); return Arrays.asList(strs); }
一写代码就开心
2022/05/09
2.5K0
Java的Set转成逗号分隔的字符串
package com.javaedge.collection.set; import org.apache.commons.lang.StringUtils; import java.util.HashSet; import java.util.Set; /** * Set转逗号分隔字符串 * * @author JavaEdge * @date 2021/10/8 */ public class Set2String { public static void main(Stri
JavaEdge
2021/12/07
3.1K0
LINQ to XML 从逗号分隔值 (CSV) 文件生成 XML 文件
参考:http://msdn.microsoft.com/zh-cn/library/bb387090.aspx
跟着阿笨一起玩NET
2018/09/19
2.6K0
SQL SERVER使用STUFF函数拼接记录为逗号分隔符
注意:本文内容太多,公众号有字数限制,全文可点击文末的阅读原文,谢谢大家的理解。Oracle培训和认证记得找小麦苗哟。
AiDBA宝典
2019/09/30
3.8K0
SQL SERVER使用STUFF函数拼接记录为逗号分隔符
php 字符串打散为数组,用逗号分隔出数组
使用explode可以将一段字符串打散成一个数组,不过,explode使用某个字符打乱,例如以上例子,我在explode圆括号内第一个参数是空格,第二个参数为我们将要打乱的字符串,那么连起来的意思就是把$str字符串通过空格打散成字符。
1_bit
2020/10/23
2.2K0
java中字符串以逗号分隔的转换为List方法
List<String> split= Arrays.asList(str.split(","));
IT工作者
2022/05/05
7.1K0
MySQL查询某个表中的所有字段并通过逗号分隔连接
想多造一些测试数据,表中字段又多一个个敲很麻烦,导出表中部分字段数据又不想导出ID字段(因为ID字段是自增的,导出后再插入会报唯一性错误),select * 查出来又是所有的字段。 可以通过如下SQL查询表中所有字段通过逗号连接,然后复制出来进行select查询再导出
共饮一杯无
2022/11/24
9.5K0
MySQL查询某个表中的所有字段并通过逗号分隔连接
Mysql 取用逗号分隔的字串的子串的方法:SUBSTRING_INDEX
有一张部门表:appbricks_department ,有 id 字段和 rank_tree 字段。
微风-- 轻许--
2022/04/13
2K0
Mysql 取用逗号分隔的字串的子串的方法:SUBSTRING_INDEX
Spring Cloud 多版本怎么选择?帮你解惑!
好久没有研究 Spring Cloud 了,也没有关注它的更新及新特性,上官网看了下,又增加了几个版本,有正式版有预览版,多达 6 个版本,实在让人蒙逼。 而我们的项目版本还仪停留在 Dalston
Java技术栈
2018/06/04
1.2K0
32 - 连接列表中的分隔符
1. 如何将列表中的元素(字符串类型的值)连接在一起(首位相接) a = ['a', 'b', 'c', 'd', 'e'] s = '+' print(s.join(a)) a+b+c+d+e 2. 字符串的join 方法的作用是什么,使用join 应该注意什么,请举例说明 join 方法可以将列表中的字符串类型元素连接起来。并且可以指定元素值直接的分隔符 dirs = '', 'use', 'local', 'xxx', '' print(dirs) path = '/'.join(dirs) prin
ruochen
2021/05/23
1.2K0
32 - 连接列表中的分隔符
Go 语言正则匹配 ID 逗号分隔 数字、英文字母、中文
关键正则表达式: ok, _ := regexp.MatchString("^[A-Za-z\\d\u4e00-\u9fa5]+(,[A-Za-z\\d\u4e00-\u9fa5]+)*$", text) 源代码: func MatchIds(text string) ([]int64, []string) { int64Ids := make([]int64, 0) stringIds := make([]string, 0) // 把可能的分隔符,统一替换成英文 逗号 ,
一个会写诗的程序员
2022/11/06
2.9K0
微服务架构之Spring Boot(二十七)
除了使用 @ConfigurationProperties 注释类之外,您还可以在公共 @Bean 方法上使用它。当您想要将属性绑定到控件之外的第三方组件时,
用户1289394
2022/04/07
6270
列表选择Spinner
1.只用XML配置来显示列表 在res\values中添加一个arrays.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <resources>
欢醉
2018/01/22
9610
列表选择Spinner
sql里将重复行数据合并为一行,数据用逗号分隔
DECLARE @T1 table ( UserID int , UserName nvarchar(50), CityName nvarchar(50) );
跟着阿笨一起玩NET
2018/09/18
3.9K0
sql里将重复行数据合并为一行,数据用逗号分隔
RGW endpoint绑定多域名
参考:https://github.com/ceph/ceph/blob/d038e1da7a6c9b31ba4463b8ebedb9908981a55e/doc/radosgw/s3/commons.rst#bucket-and-host-name
用户1260683
2018/10/25
8.2K0
RGW endpoint绑定多域名
Spring MVC 提交带有点分隔的参数
重点就是需要配置参数@InitBinder告诉当请求的方法上有orderTargetingsVo这个名称的参数的时候,参数普遍有一个前缀。意思就是给这个vo里面去set值的时候使用没有这个前缀的名称与vo里面的set方法去匹配;
前Thoughtworks-杨焱
2021/12/08
5120
点击加载更多

相似问题

将逗号分隔的字符串绑定到列表

10

SQL逗号从多列分隔列表

56

将多列收集到逗号分隔的列表中

211

使用SpringMVC表单:选择该选项可将逗号分隔值绑定到多个下拉列表

10

从逗号分隔列表中选择

52
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档