EasyUI tree 实现商品类目的加载中遇到的问题
(被IDE误导)
一、EasyUI tree数据结构
属性 | 意义 |
---|---|
Id | 节点id |
Text | 节点名称 |
State | 如果不是叶子节点就是close,叶子节点就是open。Close的节点点击后会在此发送请求查询子项目。 |
二、根据节点数据结构写pojo
public class EUTreeNode {
private long id;
private String text;
private String state;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String isState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
三、数据库表结构
CREATE TABLE `tb_item_cat` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '类目ID',
`parent_id` bigint(20) DEFAULT NULL COMMENT '父类目ID=0时,代表的是一级的类目',
`name` varchar(50) DEFAULT NULL COMMENT '类目名称',
`status` int(1) DEFAULT '1' COMMENT '状态。可选值:1(正常),2(删除)',
`sort_order` int(4) DEFAULT NULL COMMENT '排列序号,表示同级类目的展现次序,如数值相等则按名称次序排列。取值范围:大于零的整数',
`is_parent` tinyint(1) DEFAULT '1' COMMENT '该类目是否为父类目,1为true,0为false',
`created` datetime DEFAULT NULL COMMENT '创建时间',
`updated` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `parent_id` (`parent_id`,`status`) USING BTREE,
KEY `sort_order` (`sort_order`)
) ENGINE=InnoDB AUTO_INCREMENT=1183 DEFAULT CHARSET=utf8 COMMENT='商品类目';
四、实现思路
根据parent_id来进行查询,判断查询结果中的每一项是否是父节点,如果是父节点设置成关闭状态,直接点就设置成打开状态,点击关闭状态的父节点,将这个父节点的id作为查询参数进行对该父节点下子节点进行查询。
五、遇到问题
对相应路径进行请求,返回List<EUTreeNode>类型,到类目显示的时候没有任何节点被当做父节点(即状态都为open),修改返回值为Map集合节点状态能正常显示。
调试过程中对单独一个EUTreeNode进行观察,发现这三条属性都成功的赋值进去,添加进集合也没有任何问题,
六、错误点
在写EUTreeNode pojo类的时候,最开始state 中单词敲错了,然后发现错误回去进行修改以后,没有重新安装到本地仓库
再次访问对应请求返回结果
[{"id":1,"text":"图书、音像、电子书刊","state":"closed"},{"id":74,"text":"家用电器","state":"closed"},{"id":161,"text":"电脑、办公","state":"closed"},{"id":249,"text":"个护化妆","state":"closed"},{"id":290,"text":"钟表","state":"closed"},{"id":296,"text":"母婴","state":"closed"},{"id":378,"text":"食品饮料、保健食品","state":"closed"},{"id":438,"text":"汽车用品","state":"closed"},{"id":495,"text":"玩具乐器","state":"closed"},{"id":558,"text":"手机","state":"closed"},{"id":580,"text":"数码","state":"closed"},{"id":633,"text":"家居家装","state":"closed"},{"id":699,"text":"厨具","state":"closed"},{"id":749,"text":"服饰内衣","state":"closed"},{"id":865,"text":"鞋靴","state":"closed"},{"id":903,"text":"礼品箱包","state":"closed"},{"id":963,"text":"珠宝","state":"closed"},{"id":1031,"text":"运动健康","state":"closed"},{"id":1147,"text":"彩票、旅行、充值、票务","state":"closed"}]
另外,有一点需要注意,发现这个错误的时候是在另一台电脑上,回来弄以后发现install命令好几次,都没有用只能去把本地仓库的common删除然后再install