@RequestMapping(value = "/group/v_tree.do")
 public String tree(
     String root,
     Integer groupId,
     HttpServletRequest request,
     HttpServletResponse response,
     ModelMap model) {
   log.debug("tree path={}", root);
   boolean isRoot;
   // jquery treeview的根请求为root=source
   if (StringUtils.isBlank(root) || "source".equals(root)) {
     isRoot = true;
   } else {
     isRoot = false;
   }
   model.addAttribute("isRoot", isRoot);
   WebErrors errors = validateTree(root, request);
   if (errors.hasErrors()) {
     log.error(errors.getErrors().get(0));
     ResponseUtils.renderJson(response, "[]");
     return null;
   }
   CmsSite site = CmsUtils.getSite(request);
   BbsUserGroup group = manager.findById(groupId);
   Integer[] postTypeIds = group.fetchIds(group.getPostTypes());
   if (isRoot) {
     List<BbsForum> list;
     list = bbsForumMng.getList(site.getId());
     model.addAttribute("list", list);
   } else {
     List<BbsPostType> list;
     Integer parentId;
     if (StringUtils.isNotBlank(root) && root.contains(",")) {
       parentId = Integer.valueOf(root.split(",")[0]);
       list = bbsPostTypeMng.getList(site.getId(), null, parentId);
     } else {
       parentId = Integer.valueOf(root);
       list = bbsPostTypeMng.getList(site.getId(), parentId, null);
     }
     model.addAttribute("list", list);
   }
   model.put("postTypeIds", postTypeIds);
   response.setHeader("Cache-Control", "no-cache");
   response.setContentType("text/json;charset=UTF-8");
   return "group/tree";
 }