1. 程式人生 > >Java開發兩種Tree實現

Java開發兩種Tree實現

第一種:有父節點的樹的實現

一、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程式碼

@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;
		}
           注:列表形式的樹的節點都是直接新增的資料,所以不用呼叫service的方法,然後直接在xml中配置URL即可。

二、URL地址


三、效果圖