日期:2014-05-16  浏览次数:20369 次

extjs如何将数组提交到后台?
JScript code

                handler:function()
                {  
          
                    var radios= new Array();
                    for (i=1;i<=5;i++){
                   alert(form1.getForm().getValues()["rad"+i]);
                    radios[i]=form1.getForm().getValues()['rad'+i];
                 
                    }
                     alert(radios);
                     form1.getForm().submit({
                        
                  url : 'kfqa.do?actionsign=input',
             method : 'post',

                        Params:{radios:radios},
                       
              waitMsg:'正在新增...',
                        
         success : function(form1,action) {
        if(action.result.success)
        {Ext.Msg.alert('提示信息',action.result.msg);}
                  else{Ext.Msg.alert('提示信息',action.result.msg);


                            }
                    
                         },
        failure : function(form1,action) { 
        Ext.Msg.alert('提示信息',action.result.msg);    
                        }
                        
                     }); 
 }





在js里面我已获得数组radios 如何通过post方式 将 Params:{radios:radios},提交到后台?
单个变量我能用
Java code
         
         private String radio;

    public String getradio(){
        return radio;}


获取

但是数组不能用
Java code
    
         private String[] radios;

    public String[] getallradio(){
        return radios;}

获取

------解决方案--------------------
ext js 到底还是js,因此还是要遵循的js的规则,
我们不难而知 在jsp中提交时从页面到java类 数组 等复杂的 类型是传不过去类型

因此在extjs 也是传不过去的
解决方法: 第一 (拼接后的)传字符串过去
第二:封装成bean 传过去(struts) bean中有定一个radios[] 即可
------解决方案--------------------
将数组的每个元素做成一个复选框,选中要传的值后表单提交 在后台调用resuest.getParameterValues()方法,返回的倒是一个String类型的数组 不过好像这样做没意义了