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
});
}
});
}
}
定义一个对象,要传递的参数放置到对象里面去,把对象传过去,OK了,在java中有句话很经典:一切皆对象。看来我对象的思想还没有根深蒂固!。。。
对于传过去的参数后台可以这么接受:
/* 函數 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;
}