把java中的Vector,Hashtable,List等数类型转换成javaScript的数组。在这里用到的是一个StringBuffer.具体的实现看下面的代码:
public String getArray(Vector v){
if (v == null || v.size()==0){
return "";
}
int i=0;
Hashtable hash = null;
StringBuffer sb = new StringBuffer("var arrmake = new Array(");
try{
for(i=0; i<v.size(); i++){
hash = (Hashtable)v.elementAt(i);
String tmp_make = hash.get("code").toString();
if(i=1){
sb.append("'"+tmp_make+"'");
}else if(i>1){
sb.append("'"+tmp_make+"',");
}
}
String test = sb.toString();
if (i>1){
test = test.substring(0,test.length()-1);
}
sb.append(test+");");
}catch(Exception e){
e.printStackTrace();
}
return sb.toString();
}
要注意这里一定要用try{}catch(){}因为在转换过程中可能会出错,所以用try{}catch(){}把异常抛出。
在javascript中怎么用这个数组呢?
String arrMake = getArray(vecMake);
<script language="javaScript">
<%=arrMake%>
</script>
OK.