核心提示:最近在用easyUI做后台管理,经常会用到树这种结构,在easyUI中树形结构要求返回的格式是下图这样的:而我们通常从数据库里面查询出来的结果,是一个封装了Bean类的List集合,是一个扁平化的结构...
最近在用easyUI做后台管理,经常会用到树这种结构,在easyUI中树形结构要求返回的格式是下图这样的:
而我们通常从数据库里面查询出来的结果,是一个封装了Bean类的List集合,是一个扁平化的结构
我们发现,需要有一个children属性,所以要想把List集合转换为树形结构,有两个条件:
有一个字段与id字段关联,明确上下级关系 我们要知道根节点的id
然后我们写一个方法,这个方法有四个参数,
第一个参数是要转化的List集合, 第二个参数是id字段的名称, 第三个参数是与id字段关联的字段的名称, 第四个属性是根节点的id;
使用递归的方法添加上下级关系;
使用反射的方法,将Bean类中的属性全部读取出来并且封装到map中;
给出的工具类代码如下:
*下面是用于处理大小写转换的方法*
/** * 一个将方法名称转换为属性名称的方法 */ public static String methodName2attributeName(String methodName) { if(methodName==null) return null; if(methodName.startsWith("get")){ return (methodName.charAt(3)+"").toLowerCase()+methodName.substring(4,methodName.length()); } return methodName; } /** * 一个将首字母小写变大写的类 */ public static String charAt0toUpperCase(String methodName) { return (methodName.charAt(0)+"").toUpperCase()+methodName.substring(1,methodName.length()); }
*下面是转换工具*
*/ public staticList
如果写的不好还请指正