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;
}
?类
?
?
?
?