form标签之form:checkboxes

最近遇到一个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 "";
    }
原文地址:https://www.cnblogs.com/xuerong/p/7161954.html