后台代码添加children属性:
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/json;charset=UTF-8");
try {
request.setCharacterEncoding("utf-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
String id = request.getParameter("root");
String root = request.getParameter("spacename");
String output = "";
if(id==null){
return;
}else if("source".equals(id)){
output = generateInitTreeString(root);
}else{
output = generateTreeChildNodeString(id);
}
response.getWriter().println(output);
}
private String generateInitTreeString(String root){
StringBuilder jsonString = new StringBuilder();
jsonString.append("[");
TreeDao dao = new TreeDao();
List<Category> categorys = dao.getRoot(root);
int i = 0;
for(Category category : categorys){
if(i > 1){
jsonString.append(",");
}
jsonString.append(toJSONString(category));
i++;
}
jsonString.append("]}");
jsonString.append("]");
return jsonString.toString();
}
private String toJSONString(Category category){
StringBuilder sb = new StringBuilder();
sb.append("{");
sb.append("\"id\":\""+category.getCatId()+"\"");
sb.append(",\"text\":\""+generateLinkString(category)+"\"");
sb.append(",\"classes\":\""+category.getCssClass()+"\"");
if(category.isRoot()){
sb.append(",\"expanded\":true");
}else{
sb.append(",\"expanded\":false");
}
sb.append(",\"hasChildren\":"+category.hasChild());
if(!"".equals(category.getImageName())){
sb.append(",\"imagepath\":\"url("+category.getImageName()+")\"");
}
if(category.isRoot()){
sb.append(",\"children\":[");
}else{
sb.append("}");
}
return sb.toString();
}
private String generateLinkString(Category category){
String link = "<a href='"+category.getHrefAddress()+"' target='mainarea'>"+category.getCatTitle()+"</a>";
return link;
}
去掉根节点下placeholder节点: jquery.treeview.async.js 35行
var branch = $("<ul/>").appendTo(current); if(!this.isroot){ //在后台添加isroot属性,根节点不需要执行下面的代码,否则重复点击不加载数据, if (this.hasChildren) { current.addClass("hasChildren"); createNode.call({ text:"placeholder", id:"placeholder", children:[] }, branch); } }