1.js
?
//id|->{s1;[]} var dicObject = new ActiveXObject("Scripting.Dictionary"); //id|->s1 var dicId = new ActiveXObject("Scripting.Dictionary"); //id中2:->se1 ..dicSon var dicRele = new ActiveXObject("Scripting.Dictionary"); //空dic var dicNull = new ActiveXObject("Scripting.Dictionary"); //将array[Dictionary] 显示到 select中 function toOption(selectId,tempDic,valueChecked){ var select = document.getElementById(selectId); var array = (new VBArray(tempDic.Keys())).toArray(); var count = array.length; for(var i=0;i<count;i++){ var obj = document.createElement("OPTION"); obj.value = array[i]; obj.text = tempDic(array[i]); if(array[i]==valueChecked)obj.selected = "selected"; select.add(obj); } } //清空select中的option function removeOption(select){ var count = select.options.length; for(var i=count-1;i>=0;i--){ select.options.remove(i); } } //去掉两边的括号如[xxxx]--->xxxx function removeBrackets(string){ var seltemp = string.slice(1,string.length-1);//去掉[] return seltemp; } //分离出 Object 到 array function separateObject(string){ var arrsuper = string.split(","); //每个对象一个项 return arrsuper; } //id|->{s1;[]} dicObject ---调用 function getDicObject(array){ var count = array.length; for(var i=0;i<count;i++){ var arrString = array[i]; //每一项对象 var arrsuper = arrString.split("|->"); var index = arrsuper.length; if(index>=2) //id 后面 dicObject.add(trem(arrsuper[0]),trem(arrsuper[1])); else if(index==1) dicObject(trem(arrsuper[0]),""); } } //id|->s1 ---显示 function getDicId(array){ var count = array.length; for(var i=0;i<count;i++){ var arrString = array[i]; //每一项对象 var arrsuper = arrString.split("|->"); if(arrsuper.length<1)continue; var temp = removeBrackets(arrsuper[1]); var temparr = temp.split(";"); if(temparr.length>0)dicId.add(trem(arrsuper[0]),trem(temparr[0])); } } //id|->{s1;[]}中2:->se1 array={s1;[2:->se1#1:->se1#]} ---调用 function getDicSon(string){ //id|->{s1;[]}中2:->se1 var dicSon = new ActiveXObject("Scripting.Dictionary"); var temp = removeBrackets(string); var temparr = temp.split(";"); if(temparr.length<2)return; var newtemp = removeBrackets(temparr[1]); //son object var newtemparr = newtemp.split("#"); var newcount = newtemparr.length; for(var j=0;j<newcount;j++){ var newarrString = newtemparr[j]; //每一项对象的集合 var newarrsuper = newarrString.split(":->"); if(newarrsuper.length<1)continue; if(newarrsuper.length>1)dicSon.add(trem(newarrsuper[0]),trem(newarrsuper[1])); } return dicSon; } //id中2:->se1 ..dicSon function getDicRele(array){ if(dicObject.Count<1)getDicObject(array); var dicObjectKeys = (new VBArray(dicObject.Keys())).toArray(); var count = dicObjectKeys.length; for(var i=0;i<count;i++){ var arrString = dicObject(trem(dicObjectKeys[i])); //value var sonDic = getDicSon(arrString); dicRele.add(trem(dicObjectKeys[i]),sonDic); } } // function showAll(selectValue,se1,se2){ var string = removeBrackets(list); var array = separateObject(string); //object if(selectValue==null||trem(selectValue)==""){ getDicId(array); getDicRele(array); var a = (new VBArray(dicRele.Items())).toArray(); toOption(se1,dicId); toOption(se2,a[0]); }else{ removeOption(document.getElementById(se1)); removeOption(document.getElementById(se2)); toOption(se1,dicId,selectValue); toOption(se2,dicRele(trem(selectValue))); } } function selectOnChange(tag,se1,se2){ var value = tag.value; showAll(value,se1,se2); } //去掉空格(两边) function trem(str){ var str1 = rtrem(str); var string = ltrem(str1); return string; } //去掉左边空格 function ltrem(str){ var count = str.length; var seltemp = ""; for(var i=0;i<count;i++){ var s = str.charAt(i); if(s!=" "){seltemp = str.slice(i,count);break;} } return seltemp; } //去掉右边空格 function rtrem(str){ var count = str.length; var seltemp = ""; for(var i=count-1;i>=0;i--){ var s = str.charAt(i); if(s!=" "){seltemp = str.slice(0,i+1);break;} } return seltemp; }
?
2.html
?
<script type="text/javascript" src="select/select2.js"></script> <script type="text/javascript"> list = "${list}"; function onload(){ showAll(null,"se1","se2"); } </script> ...... <body onload="onload()"> ...... <select id="se1" onchange="selectOnChange(this,'se1','se2')"> </select> <select id="se2"> </select>
?
3.java---显示的
public class SelectEntity { private Integer id; private String name; private Set<SelectEntity> selectEntity; 。。。 @Override public String toString() { // TODO Auto-generated method stub String str = ""; str += this.id+"|->{"+this.name+";["; for(SelectEntity se:this.selectEntity){ str += se.getId()+":->"; str += se.name; str += "#"; } str += "]}"; return str; }
?类
?
?
?
?