Java開發兩種Tree實現
阿新 • • 發佈:2018-12-25
第一種:有父節點的樹的實現
一、action程式碼
@RequestMapping(value="/tree_sbzl.json", method={RequestMethod.GET, RequestMethod.POST}) @ResponseBody public Object listtree( String pdatatype, String pcustattr, String pid, HttpServletRequest request){ //判斷樹父id是否為空 if(StringUtil.isEmpty(pid)){ List<TreeNode> list = new ArrayList<TreeNode>(); TreeNode root = new TreeNode("1", "資料裝置", "ZLSBGL", null, true); list.add(root); return list; }else{ List<TreeNode> list = new ArrayList<TreeNode>(); //查詢菜品分類下面的菜品分類名稱 List<SnEquipments > listeq=equipmentsService.queryeqcategory(); //遍歷獲取子節點,未載入大圖縮圖 for (int i=0;i<listeq.size();i++){ list.add(new TreeNode(listeq.get(i).getEquuid(),listeq.get(i).getEqname(),"CPGL",null,false)); } return list; }
二、service程式碼
/**
* 獲取資料裝置列表
* @return list集合
*/
public List<SnEquipments> queryeqcategory(){
//定義hql語句
String hql = " from SnEquipments";
//hql查詢所有的資料裝置物件
List<SnEquipments> listEq =this.listByHql(hql);
//返回list集合
return listEq;
}
三、xml中配置tree node的URL(即action類上面打的標籤)
四、效果圖
第二種:列表形式的樹的實現
一、action程式碼
注:列表形式的樹的節點都是直接新增的資料,所以不用呼叫service的方法,然後直接在xml中配置URL即可。@Controller @RequestMapping("/equipments") public class EquipmentsAction extends BaseAction{ @Autowired private EquipmentsService equipmentsService;//新增EquipmentsService注入 //裝置資料管理左側列表 @RequestMapping(value="/left_sbzl.json", method={RequestMethod.GET, RequestMethod.POST}) @ResponseBody public Object left_sbzl(String pdatatype, String pcustattr, String pid, HttpServletRequest request){ List<TreeNode> list = new ArrayList<TreeNode>(); //新增樹的節點 list.add(new TreeNode("1", "視訊監控", "SHIPIN", null, false, "camera.png")); list.add(new TreeNode("2", "單兵", "DANBING", null, false, "mobile.png")); list.add(new TreeNode("3", "RFID卡", "RFID", null, false, "rePwd.gif")); list.add(new TreeNode("4", "門禁卡", "MENJIN", null, false, "temparg_set.gif")); return list; }