http请求规定,只能传递字符串,不支持数组传递。解决方法是,把你的数组按,或|,;等特殊字符分割,组成字符串传递,接收后在用split(jdk1.4以上)分割就是了。

解决方案 »

  1.   

    老大们,不是我不想分呀,是我这个数组是标签<html:multbox>中存的value值呀,
    在我提交时已经存到form中的checkStat了private String checkStat[]=new String[0];
    public String[] getCheckStat() {
    return checkStat;
    }
    public void setCheckStat(String[] checkStat) {
    this.checkStat = checkStat;
    }
      

  2.   

    1。用session  
    String[]  aSelName  =  request.getParameterValues("selName")  ;  
    request.getSession().getAttribute("aName",aSelName)  ;//将数组保存在session中  
     
    String[]  aName=(String[])request.getSession().getAttribute("aName");  //从session中取出,在各个页面中。  
     
    2.在每个页面用hidden元素保存字符串,传到每个页面。  
    String[]  aSelName  =  request.getParameterValues("selName")  ;  
    String  sName  =  ""  ;  
    if  (aSelName!=null){  
         for  (int  i=0;i<aSelName.length;i++){  
                   sName  +=aSelName[i]+","  ;  
         }  
         sName  =  sName.substring(0,sName.length()-1)  ;  
    }  
    <input  type="text"  name="tName"  value="<%=sName%>"  
     
    然后将字符串tName传过去,对此进行分隔。  
    String  sName=  request.getParameter("tName")  ;    
    java.util.StringTokenizer  st=new  java.util.StringTokenizer(sName,",");  
    java.util.Vector()  v  =  java.util.Vetor()  ;  
    while(st.hasMoreTokens())  
               v.add(st.nextToken())  ;  
    String[]  aName=  new  String[v.size()]  ;  
    v.copyInto(aName)  ;
      

  3.   

    我知道用session是完全可以的,那样很影响性能的,我不只是就这一个数组呀,
      

  4.   

    是的,尽量不要用 session。
    你不是用checkbox的嘛,在处理的时候同时加个javascript脚本来处理填充值不就得了。把字符串进行分割,然后用js脚本遍历页面的checkbox,把该选的选上就行了。
    不一定非得用标签,什么方便就用什么方便,标签是死的,而且局限性很大,要做到灵活一点嘛:)