ajax有个属性是:params ,可以把前台的参数传递到后台去,实际中也许会传递多个参数,
haha 我尝试了多次,我第一次得想法很怪异我在ajax下 写了两个params 结果不报错直接显示空白了。。
第二次我在params后面写了“,”用逗号隔开两个参数,虽然比第一个次得想法有味道,不过还是显示空白。
可以用这种方式传递多个参数:
js代码:
,updateColumnFn:function(btn){ var obj=this.getSelectedRowPK(); //获得所选择行PK var me=this; var selCount=this.getSelectionModel().getCount(); //獲得選擇的紀錄數 if(btn=='yes'){ Ext.MessageBox.prompt("更改領料單頭","單號:",function(bt,text){ obj.refId=text; //获得文本框中输入的值 if(bt=='ok'){ //Ext.MessageBox.wait("系統正在更新,請稍後..."); Ext.Ajax.request({ url:"BarCode/updateRefId.action" ,success:me.afterExecuteUpdateRecIdSuccess ,timeout:10000 ,scope:this ,params:obj }); } }); } }
对于传过去的参数后台可以这么接受:
/* 函數 updateInfo * 功能 根據用戶選行編號,更新用戶修改的單號, * 參數 1:用戶所選取行對應的PK (int) * 2:用戶更改的單號信息 (String) * */ @SuppressWarnings("unchecked") @RequestMapping(value="BarCode/updateRefId.action") public @ResponseBody Map<String,Object> updateInfo(HttpServletRequest request){ Map<String,Object>map=new HashMap<String,Object>(); String s[]= (request.getParameter("recId").split(",")); String refid=request.getParameter("refId"); System.out.println("批量修改后的單號為-------:"+refid); for(int i=0;i<s.length;i++){ int RecId=Integer.parseInt(s[i]); System.out.println("批量修改的主鍵為---------:"+RecId); EL_PickListTable elp=this.el_PickListTableService.selectByRecId(RecId); elp.setRefId(refid); this.el_PickListTableService.updateInfo(elp); } map.put("success",true); map.put("message","成功更新單號!"); return map; }