Struts+Ztree无极限树

Struts+Ztree无极限树实现:
1、集成工作将不再这里赘述,直接上代码。

2、通过表单新增各树节点。
/**
* 新增
*/
public void add(){

        request= ServletActionContext.getRequest();
       
       try{
          SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          java.util.Date time= df.parse(df.format(new Date()));
          String T ="_";
         //获取登录用户信息
         String  fdid = (String)get(""+ResourceUtil.getStringValue("uId")+"");
         CsmsTUsers user = (CsmsTUsers) csmsTUsersService.findByPrimaryKey(fdid) ;
       //CsmsTModule Parent = (CsmsTModule)   csmsTModuleService.findByPrimaryKey(moduleParent.getFdId());
       CsmsTModule csmsTModule = new CsmsTModule();  
       String fdModuleId = baseCoreSnService.getPrefixSerialNumber(4, CsmsTModule.class, "GN") ;
        csmsTModule.setFdModuleId(fdModuleId);
        csmsTModule.setFdModuleName(fdModuleName);
        csmsTModule.setFdModuleUrl(fdModuleUrl);
        if(StringUtil.isNotNull(moduleParent.getFdId())){
        CsmsTModule Parent = (CsmsTModule)      csmsTModuleService.findByPrimaryKey(moduleParent.getFdId());
       csmsTModule.setModuleParent(Parent);
       String treep = T+Parent.getTreePath()+T+csmsTModule.getFdId();//有父节点的情况下,树路径为下划线+父节点的路径+自己的主键(T+Parent.getTreePath()+csmsTModule.getFdId())
       csmsTModule.setTreePath(treep.replace("__", "_"));
      }else{
          csmsTModule.setTreePath(csmsTModule.getFdId());
     }
      csmsTModule.setRemark(remark);
      csmsTModule.setDelflag(false);
      csmsTModule.setCreateid(user);
      csmsTModule.setCreatetime(time);

           String result = csmsTModuleService.add(csmsTModule);
           if(result == null){
           JSONObject object=new JSONObject();
       object.put("statusCode", "300");
       object.put("message", "操作失败!");
       object.put("navTabId", "L00104");
       object.put("rel", "");
       object.put("callbackType", "closeCurrent");  //closeCurrent
       object.put("forwardUrl", "");
       out(object);
           }else{
           JSONObject object=new JSONObject();
          object.put("statusCode", "200");
          object.put("message", "操作成功!");
          object.put("navTabId", "L00104");
          object.put("rel", "");
          object.put("callbackType", "closeCurrent"); //closeCurrent
          object.put("forwardUrl", "");
          out(object);
           }
     }catch(Exception ex){
        ex.printStackTrace();
   }
}

3、封装节点数据。
    public void doGetPrivilegeTree() throws IOException{ 
    HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
    try {
List moduleList = new ArrayList();
StringBuffer whereBlock= new StringBuffer();

StringBuffer orderBy=new StringBuffer(" order by c.fdModuleId asc");
int currentPage1=1;
int numPerPage1=1000;

moduleList = csmsTModuleService.findlist(whereBlock.toString(),
orderBy.toString(), currentPage1, numPerPage1);

response.setContentType("application/json"); 
         response.setCharacterEncoding("UTF-8"); 
    
PrintWriter writer = response.getWriter();
List> mapList = new ArrayList>();
if(moduleList!=null&&moduleList.size()>0 ){

for(CsmsTModule csmsTModule:moduleList){
Map map = new  HashMap();
map.put("id", csmsTModule.getFdId());
if(csmsTModule.getModuleParent()!=null){
String pId=csmsTModule.getModuleParent().getFdId();
map.put("pId", pId);
}else{
String pId=csmsTModule.getFdId();
map.put("pId", pId);
}
map.put("name", csmsTModule.getFdModuleName());
mapList.add(map);
}
ActionContext.getContext().put("mapList", mapList);
}
response.getWriter().print(JSONArray.fromObject(mapList).toString());
System.out.println("---"+mapList);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    } 


4、JSP页面设置树相关信息并获取后台返回数据

 

5、树路径结构正常就可以无极限。其实还可以做的更好,各节点可直接在树上进行操作详情可参考http://www.ztree.me/v3/main.php#_zTreeInfo。

 

6、树效果图


Struts+Ztree无极限树_第1张图片

 


 7、表数据以及树路径


Struts+Ztree无极限树_第2张图片
 

你可能感兴趣的:(Struts2)