我之前有一篇博客介绍的是使用双重for循环完成二级菜单,现在需要使用for循环完成三级菜单,如果还不太清楚二级菜单怎么获取的可以看我之前的博客http://blog.csdn.net/wangshan_1121/article/details/78407100
数据库的表如下图:
婚姻一级菜单,婚姻登记二级菜单,下面标注的是三级菜单,使用PARENT_ID关联,低保查询同理。
sql查询的是整张表的数据,我们在controller层获取到整个表的集合,再进行处理,controller的代码如下:
public String yeardeathCount() {
List<PageData> list = null;
List<PageData> listparent=new ArrayList<>();
PageData datas=new PageData();
PageData pd = new PageData();
pd = this.getPageData();
try {
list = datamanagerService.listMenu(pd);//查询到一级菜单和二级菜单的集合
for(PageData pdata:list){
if(Integer.valueOf(pdata.get("PARENT_ID").toString())==0){//先将一级菜单装到一个集合
listparent.add(pdata);
}
}
list.removeAll(listparent);//去除一级菜单只剩二级菜单
for(int i=0;i<listparent.size();i++){//外层循环查一级菜单
PageData data=new PageData();
PageData parentdata=listparent.get(i);
List<PageData> sons=new ArrayList<>();//用来装二级菜单的集合
for(PageData pdata:list){
//TODO for循环将三级菜单的添加到一个集合中,将该集合添加到二级菜单的pagedata中
List<PageData> grandsons=new ArrayList<>();//用来装三级菜单的集合
for(PageData threedata:list){
if(Integer.valueOf(pdata.get("MENU_ID").toString())==Integer.valueOf(threedata.get("PARENT_ID").toString())){
grandsons.add(threedata);
}else{
continue;
}
pdata.put("list", grandsons);
}
//将同属一级菜单的二级菜单装到一个集合中
if(Integer.valueOf(parentdata.get("MENU_ID").toString())==Integer.valueOf(pdata.get("PARENT_ID").toString())){
sons.add(pdata);
}else{
continue;
}
}//将一级菜单和二级菜单放到map中
data.put("parentdata",parentdata);
data.put("sons", sons);
datas.put("data"+i, data);
}
return JSONUtil.JsonString(new JsonResult( 1, "成功!", datas));
} catch (Exception e) {
// TODO: handle exception
logger.error("错误:" + e.toString(), e);
return JSONUtil.toJsonString(new JsonResult(-1, "失败:服务器内部错误!", null));
}
}
注释写的很清楚了,相信能读懂的,其实这个datas可以使用list,看个人需求了,返回给前端的json如下,
"code":1,
"message":"成功!",
"rows":{
"data9":{
"sons":[
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"address.html",
"MENU_KEY":null,
"MENU_ID":24,
"MENU_STATE":null,
"MENU_NAME":"地名地址",
"MENU_ORDER":"5",
"MENU_ICON":"menu-icon fa fa-university white",
"PARENT_ID":0
}
},
"data8":{
"sons":[
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"compartment.html",
"MENU_KEY":null,
"MENU_ID":23,
"MENU_STATE":null,
"MENU_NAME":"行政区划",
"MENU_ORDER":"4",
"MENU_ICON":"menu-icon fa fa-empire white",
"PARENT_ID":0
}
},
"data7":{
"sons":[
{
"MENU_TYPE":null,
"MENU_URL":"basicLive.html",
"MENU_KEY":null,
"MENU_ID":22,
"MENU_STATE":null,
"MENU_NAME":"低保查询",
"MENU_ORDER":"1",
"MENU_ICON":null,
"list":[
Object{...},
Object{...},
Object{...}
],
"PARENT_ID":20
}
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"#",
"MENU_KEY":null,
"MENU_ID":20,
"MENU_STATE":null,
"MENU_NAME":"低保",
"MENU_ORDER":"10",
"MENU_ICON":"menu-icon fa fa-headphones white",
"PARENT_ID":0
}
},
"data6":{
"sons":[
{
"MENU_TYPE":null,
"MENU_URL":"funeral.html",
"MENU_KEY":null,
"MENU_ID":21,
"MENU_STATE":null,
"MENU_NAME":"殡葬管理",
"MENU_ORDER":"1",
"MENU_ICON":null,
"PARENT_ID":19
}
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"#",
"MENU_KEY":null,
"MENU_ID":19,
"MENU_STATE":null,
"MENU_NAME":"殡葬",
"MENU_ORDER":"9",
"MENU_ICON":"menu-icon fa fa-male white",
"PARENT_ID":0
}
},
"data5":{
"sons":[
{
"MENU_TYPE":null,
"MENU_URL":"socialWorker.html",
"MENU_KEY":null,
"MENU_ID":18,
"MENU_STATE":null,
"MENU_NAME":"工作者",
"MENU_ORDER":"1",
"MENU_ICON":"menu-icon fa fa-stumbleupon white",
"PARENT_ID":17
}
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"#",
"MENU_KEY":null,
"MENU_ID":17,
"MENU_STATE":null,
"MENU_NAME":"社会",
"MENU_ORDER":"8",
"MENU_ICON":"menu-icon fa fa-gg white",
"PARENT_ID":0
}
},
"data4":{
"sons":[
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"#",
"MENU_KEY":null,
"MENU_ID":15,
"MENU_STATE":null,
"MENU_NAME":"组织",
"MENU_ORDER":"7",
"MENU_ICON":"menu-icon fa fa-sitemap white",
"PARENT_ID":0
}
},
"data3":{
"sons":[
{
"MENU_TYPE":null,
"MENU_URL":"marriage.html",
"MENU_KEY":null,
"MENU_ID":16,
"MENU_STATE":null,
"MENU_NAME":"婚姻登记",
"MENU_ORDER":"2",
"MENU_ICON":"menu-icon fa fa-random white",
"list":[
{
"MENU_TYPE":null,
"MENU_URL":null,
"MENU_KEY":null,
"MENU_ID":25,
"MENU_STATE":null,
"MENU_NAME":"婚姻登记的三级菜单1",
"MENU_ORDER":"1",
"MENU_ICON":null,
"PARENT_ID":16
},
{
"MENU_TYPE":null,
"MENU_URL":null,
"MENU_KEY":null,
"MENU_ID":26,
"MENU_STATE":null,
"MENU_NAME":"婚姻登记的三级菜单2",
"MENU_ORDER":"2",
"MENU_ICON":null,
"PARENT_ID":16
},
{
"MENU_TYPE":null,
"MENU_URL":null,
"MENU_KEY":null,
"MENU_ID":27,
"MENU_STATE":null,
"MENU_NAME":"婚姻登记的三级菜单3",
"MENU_ORDER":"3",
"MENU_ICON":null,
"PARENT_ID":16
}
],
"PARENT_ID":14
}
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"#",
"MENU_KEY":null,
"MENU_ID":14,
"MENU_STATE":null,
"MENU_NAME":"婚姻",
"MENU_ORDER":"6",
"MENU_ICON":"menu-icon fa fa-random white",
"PARENT_ID":0
}
},
"data2":{
"sons":[
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"#",
"MENU_KEY":null,
"MENU_ID":3,
"MENU_STATE":null,
"MENU_NAME":"法人",
"MENU_ORDER":"3",
"MENU_ICON":"menu-icon fa fa-users white",
"PARENT_ID":0
}
},
"data1":{
"sons":[
{
"MENU_TYPE":null,
"MENU_URL":"javascript:;",
"MENU_KEY":null,
"MENU_ID":7,
"MENU_STATE":null,
"MENU_NAME":"困难家庭",
"MENU_ORDER":"1",
"MENU_ICON":null,
"PARENT_ID":2
}
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"#",
"MENU_KEY":null,
"MENU_ID":2,
"MENU_STATE":null,
"MENU_NAME":"帮扶",
"MENU_ORDER":"2",
"MENU_ICON":"menu-icon fa fa-recycle white",
"PARENT_ID":0
}
},
"data0":{
"sons":[
{
"MENU_TYPE":null,
"MENU_URL":"populace.html",
"MENU_KEY":null,
"MENU_ID":6,
"MENU_STATE":null,
"MENU_NAME":"户籍信息",
"MENU_ORDER":"1",
"MENU_ICON":null,
"PARENT_ID":1
}
],
"parentdata":{
"MENU_TYPE":null,
"MENU_URL":"#",
"MENU_KEY":null,
"MENU_ID":1,
"MENU_STATE":null,
"MENU_NAME":"人口",
"MENU_ORDER":"1",
"MENU_ICON":"menu-icon fa fa-male white",
"PARENT_ID":0
}
}
}
}
达到了我想要的需求,希望能帮助到大家。