JSP display of tree structure (2)

1. In the absence of tree controls, etc., the backend uses sql to query the tree structure data, and the front desk traverses directly according to the mark (in fact, the same is true for attribute controls) (use js to traverse the data directly)

 

2. There is also a medium-mode background that is assembled into a list according to the parent-child relationship, and the front-end uses jsp tags to traverse the parent and child

<div id="div1" style="width:100%;">

</div>

 

$(function(){

 

alert("2");

appendTable();

});

function appendTable() {

 

 

alert("11");

var roleId=$("input[name='roleId']").val();

var leave=$("input[name='leave']").val();

var pId=$("input[name='pId']").val();

var dataParent = {

roleId: roleId,

leave:leave,

pId:pId

 

   };

$.ajax({

        type: "post",

        url: "${pageContext.request.contextPath}/system/opmRole/Auths",

        data: dataParent,

        success: function (data) {

        if(data!=''&&data!=null){

        //alert(data);<table

        var div1=$("#div1");

        //var table1=$("#table1");

        var table1=$("<table></table>");

        var arr = eval (data);

        for(j=0;j<arr.length;j++){

        //alert(arr[j]);

        //alert(arr[j].leave);

        if(arr[j].leave=='1'){//Include two levels of folders

        var row =$("<tr></tr>");

        var td =$("<td></td>");

        td.append($(arr[j].str));

        row.append(td);

        table1.append(row);

        }

        var row2;

        if(arr[j].leave=='2'){//Page

        row2 =$("<tr></tr>");

       

        var td =$("<td></td>");

        td.append(arr[j].str);

        row2.append(td);

        table1.append(row2);

       

        }if(arr[j].leave=='3'){//Button

        var td =$("<td></td>");

        td.append(arr[j].str);

       

        table1.find("tr:last").append(td);

        }

        //table1.append(row2);

        //var strq = JSON.stringify(table1);

        ////alert(strq);

        }

        div1.html(table1);

        //alert(table1);

        }else{

        alert("The member number you entered does not exist!");

        }

       

        },

        error:function(data){

        alert("Data loading exception!");

       

        }

    }); 

 

 

}

 

 

//select all check box

function checkedAllBox(obj) {

if(obj.checked){

var a = document.getElementsByName(obj.value);

for (i = 0; i < a.length; i++) {

a[i].checked=true;

}

}else{

var a = document.getElementsByName(obj.value);

for (i = 0; i < a.length; i++) {

a[i].checked=false;

}

}

}

When iterating, the data at each level has no method and cannot be shared. It is necessary to achieve similar sharing and accumulation:

1. Accumulate the return value, use a variable to accumulate the return value

2, Pass in the parameters to be shared before the second callback

@SuppressWarnings("rawtypes")

@RequestMapping(value="/system/opmRole/Auths")

@ResponseBody

public JSONArray treeRead(@RequestParam(value="leave") String leave,@RequestParam(value="roleId") String roleId,@RequestParam(value="pId")  String pId,@RequestParam(value="groupId",required=false)  String groupId1){

List<String> strl= new ArrayList<String>();

String str="";

JSONArray JsonArray = new JSONArray();

Map<String,Object> param = new HashMap<String,Object>();

param.put("pId", pId);

//OpmMenufolderTreeVo treeVos= new OpmMenufolderTreeVo();

List<Map> map= opmMenufolderService.getfordMenuLimt(param);

Map<String,Object> param1 = new HashMap<String,Object>();

String groupId=groupId1;

for(Map p: map){

 

//List<OpmMenufolderTreeVo> treechild= new ArrayList<OpmMenufolderTreeVo>();

//List<OpmMenuitemTreeVo> opmMenuitem= new ArrayList<OpmMenuitemTreeVo>();

param1.put("pId", p.get("ID"));

String l= (String) p.get("LEAVE");

if("1".equals(l)){

//str+=p.get("ID")+"="+p.get("NAME")+"\n";

if("100000".equals(p.get("PARENTID")+"")){

groupId=(String)p.get("ID");

//OpmMenufolderTreeVo treeVo= new OpmMenufolderTreeVo();

//treeVo.setId(p.get("ID")+"");

//treeVo.setName(p.get("NAME")+"");

//treeVo.setGroupIp(groupId);

//treechild.add(treeVo);

//treeVos.setChildForld(treechild);

   str+="<label style=\"float:left\"><input type=\"checkbox\" class=\"checkboxCtrl\" value="+p.get("ID")+" group="+groupId+" selectType=\"invert\" />"+p.get("NAME")+"</label>"+"\n";

   strl.add(str);

   JSONObject Json = new JSONObject();

   Json.put("ID", p.get("ID")+"");

   Json.put("NAME", p.get("NAME")+"");

   Json.put("groupId", groupId);

   Json.put("parentId", p.get("PARENTID"));

   Json.put("leave", l);

   Json.put("str", "<label style=\"float:left\"><input type=\"checkbox\" class=\"checkboxCtrl\" value="+p.get("ID")+"  onclick=\"checkedAllBox(this);\" group="+groupId+" //>"+p.get("NAME")+"</label>"+"\n");

   JsonArray.add(Json);

   

   

}else{

//OpmMenuitemTreeVo treeVo= new OpmMenuitemTreeVo();

//treeVo.setId(p.get("ID")+"");

//treeVo.setName(p.get("NAME")+"");

//treeVo.setGroupIp(groupId);

//opmMenuitem.add(treeVo);

//treeVos.setOpmMenuitem(opmMenuitem);<input type=\"checkbox\" value="+p.get("ID")+" name="+groupId+"/>

str+="<label><input type=\"checkbox\" value="+p.get("ID")+" name="+groupId+"/>"+p.get("NAME")+"</label>"+"\n";

strl.add(str);

JSONObject Json = new JSONObject();

   Json.put("ID", p.get("ID")+"");

   Json.put("NAME", p.get("NAME")+"");

   Json.put("groupId",groupId);

   Json.put("parentId", p.get("PARENTID"));

   Json.put("leave", l);

   Json.put("str","<label>   "+p.get("NAME")+"</label>"+"\n");

   JsonArray.add(Json);

}

}

if("2".equals(l)){

if(Integer.valueOf(leave)<0){

if(Integer.valueOf(p.get("LEAVE1")+"") >=Integer.valueOf(leave)){

//str+=p.get("ID")+"="+p.get("NAME")+"\n";

str+="<label><input type=\"checkbox\" value="+p.get("ID")+"  name="+groupId+"/>"+p.get("NAME")+"</label>"+"\n";

strl.add(str);

JSONObject Json = new JSONObject();

   Json.put("ID", p.get("ID")+"");

   Json.put("NAME", p.get("NAME")+"");

   Json.put("groupId", groupId);

   Json.put("parentId", p.get("PARENTID"));

   Json.put("leave", l);

   Json.put("str","<label>      <input type=\"checkbox\" value="+p.get("ID")+"  name='"+groupId+"'/>"+p.get("NAME")+"</label>"+"\n");

   JsonArray.add(Json);

}

}else{

//EVERYTHING

Map<String,Object> param2 = new HashMap<String,Object>();

param2.put("menuItemId", p.get("ID"));

param2.put("menuItemLimitId", null);

param2.put("roleId", roleId);

param2.put("displayOrder", Integer.valueOf(-1));

List <OpmRolelimit> rl = opgRolelimitService.getRoleLimitByTJ (param2);

if(rl!=null&&rl.size()>0&&Integer.valueOf(p.get("LEAVE1")+"") >=Integer.valueOf(leave)){

//str+=p.get("ID")+"="+p.get("NAME")+"\n";

str+="<label><input type=\"checkbox\" value="+p.get("ID")+" name="+groupId+"/>"+p.get("NAME")+"</label>"+"\n";

strl.add(str);

JSONObject Json = new JSONObject();

   Json.put("ID", p.get("ID")+"");

   Json.put("NAME", p.get("NAME")+"");

   Json.put("groupId", groupId);

   Json.put("parentId", p.get("PARENTID"));

   Json.put("leave", l);

   Json.put("str","<label>      <input type=\"checkbox\" value="+p.get("ID")+" name='"+groupId+"'/>"+p.get("NAME")+"</label>"+"\n");

   JsonArray.add(Json);

}

}

}

if("3".equals(l)){

Map<String,Object> param2 = new HashMap<String,Object>();

param2.put("menuItemId", p.get("PARENTID"));

param2.put("menuItemLimitId", p.get("ID"));

param2.put("roleId", roleId);

param2.put("displayOrder", null);

List <OpmRolelimit> rl2 = opgRolelimitService.getRoleLimitByTJ (param2);

String tempg=groupId;

if(rl2!=null&&rl2.size()>0){

//str+=p.get("ID")+"="+p.get("NAME")+"\n";

str+="<label><input type=\"checkbox\"  value="+p.get("ID")+" name="+groupId+"/>"+p.get("NAME")+"</label>"+"\n";

strl.add(str);

JSONObject Json = new JSONObject();

   Json.put("ID", p.get("ID")+"");

   Json.put("NAME", p.get("NAME")+"");

   Json.put("groupId", groupId);

   Json.put("parentId", p.get("PARENTID"));

   Json.put("leave", l);

   Json.put("str","<label><input type=\"checkbox\"  value="+p.get("ID")+" name='"+groupId+"'/>"+p.get("NAME")+"</label>"+"\n");

   JsonArray.add(Json);

}

}

str+=treeRead(leave,roleId,p.get("ID")+"",groupId);

//strl.add(treeRead(param1,level,roleCurId,groupId));

JsonArray.addAll(treeRead(leave,roleId,p.get("ID")+"",groupId));

}

return JsonArray;

}

 

 

service:

@Override

public List<Map> getfordMenuLimt(Map<String,Object> param) {

// TODO Auto-generated method stub

List<Map> map = new ArrayList<>();

map= (List<Map>) opmMenufolderMapper.getfordMenuLimt(param);

return map;

}

 

map.java

public interface OpmMenufolderMapper extends Mapper<OpmMenufolder> {

 

List<?> getfordMenuLimt(Map<String,Object> param);

}

 

map.xml

 <resultMap id="BaseResultMap" type="com.esteel.system.bean.OpmMenufolder" >

    <!--

      WARNING - @mbggenerated

    -->

    <id column="ID" property="id" jdbcType="VARCHAR" />

    <result column="NAME" property="name" jdbcType="VARCHAR" />

    <result column="DISPLAYORDER" property="displayorder" jdbcType="DECIMAL" />

    <result column="PARENTID" property="parentid" jdbcType="VARCHAR" />

    <result column="URI" property="uri" jdbcType="VARCHAR" />

    <result column="DESCRIPTION" property="description" jdbcType="VARCHAR" />

    <result column="ICONCSS" property="iconcss" jdbcType="VARCHAR" />

    <result column="SUBSYSTEM" property="subsystem" jdbcType="VARCHAR" />

  </resultMap>

  

  <select id="getfordMenuLimt" resultType="map" parameterType="map">

    select * from (select * from 

(   

     select t.name name,t.id  id,t.parentid  parentid ,0 leave1,'1' leave from opm_menufolder t 

   union all select o.name name,o.id id,o.menufolderid,o.level1 leave1,'2' leave  from opm_menuitem o

   union all select l.name name,l.id id,l.menuitemid ,l.level1 leave1,'3' leave  from opm_menuitemlimit l

start with parentid is null connect by prior id=parentid ORDER SIBLINGS BY parentid) where parentid=#{pId}

  

  </select>

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326532032&siteId=291194637