pojo
ItemCatResult
public class ItemCatResult {
@JsonProperty("data") //json序列化时指定字段名称
private List itemCats = new ArrayList();
public List getItemCats() {
return itemCats;
}
public void setItemCats(List itemCats) {
this.itemCats = itemCats;
}
}
ItemCatData
public class ItemCatData {
@JsonProperty("u") // 序列化成json数据时为 u
private String url;
@JsonProperty("n")
private String name;
@JsonProperty("i")
private List> items;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List> getItems() {
return items;
}
public void setItems(List> items) {
this.items = items;
}
}
WebItemCatController
package com.peng.controller.web;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.peng.pojo.ItemCat;
import com.peng.service.ItemCatService;
import com.peng.vo.ItemCatData;
import com.peng.vo.ItemCatResult;
@Controller("webController")
public class WebItemCatController {
@Autowired
@Qualifier("itemCatService")
private ItemCatService itemCatService;
// 处理前台首页三层分类树
@RequestMapping("/web/item/all")
@ResponseBody
public ItemCatResult queryItemsCats() {
// 创建一个返回对象
ItemCatResult result = new ItemCatResult();
// 先获取所有信息
List itemCatsList = itemCatService.queryAll();
// <父id,子ItemCat>的关系列表
Map> map = new HashMap>();
for (ItemCat itemCat : itemCatsList) {
if (!map.containsKey(itemCat.getParentId())) {
map.put(itemCat.getParentId(), new ArrayList());
}
List valuesList = map.get(itemCat.getParentId());
valuesList.add(itemCat);
}
// 一级菜单
List itemCatList_firstFloor = map.get(0L);// 父id为0的是一级菜单
// 一级菜单下的列表数据
List firstFloor_itemCatDataList = new ArrayList();
// 通过循环一级菜单,构造一级菜单的列表数据
for (ItemCat itemCat1 : itemCatList_firstFloor) {
ItemCatData itemCatData1 = new ItemCatData();
String url = "/products/" + itemCat1.getId() + "html";
itemCatData1.setUrl(url);
itemCatData1.setName("" + itemCat1.getName() + "");
// 一级菜单下的二级菜单数据
List itemCatList_SecondFloor = map.get(itemCat1.getId());// 获取一级菜单中下的菜单
// 二级级菜单下的列表数据
List SecondFloor_itemCatDataList = new ArrayList();
// 通过循环二级菜单,构造二级菜单的列表数据
for (ItemCat itemCat2 : itemCatList_SecondFloor) {
ItemCatData itemCatData2 = new ItemCatData();
String url2 = "/products/" + itemCat2.getId() + "html";
itemCatData2.setUrl(url2);
itemCatData2.setName("" + itemCat2.getName() + "");
// 二级菜单下的三级菜单数据
List itemCatList_ThreadFloor = map.get(itemCat2.getId());// 获取一级菜单中下的菜单
// 三级级菜单下的列表数据
List ThreadFloor_StringDataList = new ArrayList();
// 通过循环三级菜单,构造三级菜单的列表数据
for (ItemCat itemCat3 : itemCatList_ThreadFloor) {
String url3 = "/products/" + itemCat3.getId() + "html";
String name3 = itemCat3.getName();
// 将三级列表数据添加到三级列表
ThreadFloor_StringDataList.add(url3 + "|" + name3);
}
// 添加三级菜单
itemCatData2.setItems(ThreadFloor_StringDataList);
// 将二级列表数据添加到二级列表
SecondFloor_itemCatDataList.add(itemCatData2);
}
// 添加二级菜单
itemCatData1.setItems(SecondFloor_itemCatDataList);
// 将一级列表数据添加到一级列表
firstFloor_itemCatDataList.add(itemCatData1);
}
// 将所有数据加入返回的结果中
result.setItemCats(firstFloor_itemCatDataList);
// 将菜单加入返回数据中
return result;
}
}
$.getJsonp(url,category.getDataService){}
1.
2.