jsp页面:
<div class="contentline listtree">
<div id="tree_container"> </div>
<div id="div1"> </div>
</div>
<script type="text/javascript">
require(["dojo/request","dojo/dom","dojo/store/Memory","dijit/tree/ObjectStoreModel","dijit/Tree"],function(request,dom,Memory,ObjectStoreModel,Tree){
request.get("http://localhost:8080/irmp-web/web/test/showAllFunction.htm",{
handleAs: "json"
}).then(function(data){
//alert(data);
var myStore = new Memory({
data:[{id: "root", children: data}],
getChildren: function(object){
return object.children;
}
});
var myModel = new ObjectStoreModel({
store: myStore, query: {id: 'root'},
mayHaveChildren: function(objectt){
//alert(objectt);
if(objectt.children.length>0){
return true;
}
return false;
}
});
var tree = new Tree({
model: myModel,
onClick: function(item){
var url = item["url"];
if(url != ""){
url = '${pageContext.request.contextPath}' + url + '?funcId=' + item["id"];
window.location.href = url;
}
},
showRoot:false
},dom.byId("div1"));
// tree.placeAt(win.body());
tree.startup();
});
});
</script>
TreeController类:
package com.ibm.banking.irmp.web; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import com.google.gson.ExclusionStrategy; import com.google.gson.FieldAttributes; import com.ibm.banking.auth.function.Function; import com.ibm.banking.auth.function.FunctionService; import com.ibm.banking.framework.web.view.GsonView; import com.ibm.banking.irmp.index.indicator.IndicatorService; @Controller @RequestMapping("/web/test") public class TreeController{ Logger log = LoggerFactory.getLogger(this.getClass()); @Autowired FunctionService functionService; @Autowired IndicatorService indicatorService; ExclusionStrategy exclusionStrategy = new ExclusionStrategy() { public boolean shouldSkipField(FieldAttributes field) { String fieldName = field.getName(); if (fieldName.equals("id") || fieldName.equals("name")|| fieldName.equals("children")|| fieldName.equals("url")) { return false; } return true; //return true; } public boolean shouldSkipClass(Class<?> clazz) { return false; } }; /** * 同步获取所有指标 ,使用异步获取指标的方式替代 * * @param request * @param model * @return */ @RequestMapping("/showAllFunction") public GsonView showAllFunction(Model model) { List<Function> funs = functionService.getFunctionTree(); model.addAttribute("funs", funs); //GsonView view = new GsonView("allcategories", null); GsonView view= new GsonView("funs", exclusionStrategy); return view; } }