Easyui例項--tree元件的使用1
阿新 • • 發佈:2019-02-20
package com.chenqk.springmvc.controller; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; 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.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import com.chenqk.springmvc.entity.Tree; import com.chenqk.springmvc.service.TreeService; import com.chenqk.springmvc.util.CommonUtil; /** * 控制層 * @author chenqk * * @RequestMapping 是一個用來處理請求地址對映的註解,可用於類或方法上。用於類上, * 表示類中的所有響應請求的方法都是以該地址作為父路徑。 * 該註解分為6個屬性 * value: 指定請求的實際地址,指定的地址可以是URI Template 模式,其中可以為普通的具體值, * 含有某變數的一類值,包含正則表示式的一類值; * method: 指定請求的method型別, GET、POST、PUT、DELETE等; * consumes: 指定處理請求的提交內容型別(Content-Type),例如application/json, text/html; * produces: 指定返回的內容型別,僅當request請求頭中的(Accept)型別中包含該指定型別才返回; * params: 指定request中必須包含某些引數值是,才讓該方法處理。 * headers: 指定request中必須包含某些指定的header值,才能讓該方法處理請求。 */ @Controller @RequestMapping("/") public class TreeController { @Autowired @Qualifier("TreeService") private TreeService treeService; public TreeService getTreeService() { return treeService; } public void setTreeService(TreeService treeService) { this.treeService = treeService; } /** * 初始化tree資料 * @param pid */ @RequestMapping(value="/getNodesByParentId",method=RequestMethod.POST) public void getNodesByParentId(@RequestParam("id") int id,HttpServletResponse response){ String node_str = ""; StringBuffer json = new StringBuffer(); //獲得根節點資訊,以便組裝到json中 Tree treeRoot = treeService.getNodeById(id); json.append("["); json.append("{\"id\":" +String.valueOf(treeRoot.getId())); json.append(",\"text\":\"" +treeRoot.getText() + "\""); json.append(",\"state\":\"open\""); json.append(",\"attributes\":\""+treeRoot.getAttributes() + "\""); json.append(",\"children\":["); //獲取根節點下的所有子節點 List<Tree> treeList = new ArrayList<Tree>(); treeList = treeService.getNodesByParentId(id); if(treeList != null && treeList.size() != 0){ for (Tree t : treeList) { json.append("{\"id\":" +String.valueOf(t.getId())); json.append(",\"text\":\"" +t.getText() + "\""); json.append(",\"state\":\"open\""); json.append(",\"attributes\":\""+t.getAttributes() + "\""); json.append(",\"children\":["); List<Tree> tList = treeService.getNodesByParentId(t.getId()); if(tList != null && tList.size() != 0){ json.append(CommonUtil.dealJsonFormat(tList));// 存在子節點的都放在一個工具類裡面處理了 json.append("]},"); }else{ json.append("]},"); } } }else{ json.append("]"); } node_str = json.toString(); node_str = node_str.substring(0, node_str.length()-1); node_str+="]}]"; try { response.getWriter().print(node_str); } catch (IOException e) { e.printStackTrace(); } } }