最近遇到一个bug关于form:checkboxes标签的错误
如下,我从后台查到的是String 的数组。当是一个值的时候,页面的多选框会选择一个框的值。但是多个的时候,就没值了
<form:checkboxes path="roleIds" items="${allRoles}" itemLabel="name"/>
原来这个path必须要是一个List<String>类型的才行
<form:checkboxes path="roleIdList" items="${allRoles}" itemLabel="name"/>
为了类型转换,自己写了个工具类
/** * string转list * @param str * @return */ public static List<String> getStringToList(String str) { List<String> list = Lists.newArrayList(); if (StringUtils.isNotBlank(str)) { String[] arr = str.split(","); for (String s : arr) { list.add(s); } } return list; } /** * list转string * @param list * @return */ public static String getListToString(List<String> list) { StringBuilder sb = new StringBuilder(); for (String s : list) { sb.append(s); sb.append(","); } if (sb.toString().endsWith(",")) { return sb.toString().substring(0, sb.length() - 1); } return ""; }