博猪昨天搭建了一个小小的后台管理页面,需要一个树状的下拉列表,由于本小白是个只会写后端的小渣渣,所以使用easyui搭建了一下,先上个效果图吧
对于一个只会写后台的码农来说,这个页面还是很满足的,但是搭建过程中发现了几个小问题导致树的效果并显示不出来,所以分享给大家,防止大家也和我一样走弯路,好了,进入正题!
(1).检查你的数据接口是否返回的是“_parentId”,
解决:因为若我们不做处理,FASTJSON可能会返回字符串没有"_"这个字符,所以在你需要树状显示的实体类中,在定义_parentId的时候加上一个
@JSONField(name="_parentId")
这个注解,即可以解决返回的JSON字符串没有前置下划线的问题!
(2).检查树状列表的父类返回的"_parentId"的数值是否为null
解决:因为我们习惯性的会设置_parentId为int类型,而int类型是一个基本数据类型,所以如果为空的话,json会自动的复制给一个0,而如果"_parentId"为0的话,treegrid会默认去寻找id为0的节点,但是这个节点我们并没有,如果父节点的显示不出来,那么子节点更不会显示出来了,解决办法就是把int改为Integer类型,数据库中默认空值为null,JSON就可以返回给我们一个null属性,这个时候就可以显示出来了
(3).有人可能会问官网的api给的{rows:[{...},{...},{...},]}这种结构怎么来获得
解决:ps:个人解决办法,自我感觉非最佳,如有更好方法,请各位大牛指教..
创建一个实体类 类中定义一个List<?> rows = new List<?>(),把通过dao类查询获得的集合通过setRows方法放入rows集合中,然后再返回,就可以获得所需要的类型啦。
爱生活,爱编程!