Posted on 2008-10-17 10:34
Neil's NoteBook 閱讀(4102)
評論(0) 編輯 收藏
項目中一次用到EXTJS的FORMPANEL的提交方式,本以為會與普通AJAX提交方式相同,但是,后來發現兩者之間有一些區別,記錄如下:
前端EXTJS FORMPANEL代碼如下:
buttons: [{
text:'提交',
handler: function(){
if(dyt_editForm.form.isValid()){
dyt_editForm.form.submit({
url: '/tams/xxcj/modifySssq', //處理修改后臺地址
method: 'post',
params: {daid: v.get("da_id")},
success: function (f,v){
var myResult = Ext.util.JSON.decode(v.response.responseText); //這句代碼與普通解析返回字符串不一樣
alert(myResult.result);
},
failure: function (f,v){
Ext.MessageBox.show({
title: '失敗',
msg: '修改出現異常,未能完成,請重試!',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.ERROR
});
},
waitMsg: '正在處理數據,請稍后……',
scope: this
});
}
}
},{
text: '取消',
handler: function(){
dyt_editwin.close();
}
}]
后臺可以直接按照普通網頁的方式,按照FORM內控件的名稱獲取各自的值,后臺代碼如下:
/**
* 修改所屬時期起止時間
*/
public void modifySssq(HttpServletRequest request,
HttpServletResponse response) {
System.out.println("*************");
String daid = request.getParameter("daid");
Date date1 = Date.valueOf(request.getParameter("sssqq"));
Date date2 = Date.valueOf(request.getParameter("sssqz"));
String results = DAOFactory.getXxcjDAO().modifySssq(Long.parseLong(daid), date1, date2);
if("success".equals(results)){
results = "修改所屬稅務時期操作成功!";
}else{
results = "修改所屬稅務時期操作失?。?/span>";
}
try {
//返回值需要封裝一下
Map jsonmap = new HashMap();
//這里是想要返回前臺的值
jsonmap.put("result", results);
//區別就在這里了,必須要傳回去一個“success”,前臺才能判斷請求是否成功
jsonmap.put("success", new Boolean(true));
JSONObject jsonObject = JSONObject.fromObject(jsonmap);
response.setContentType("text/json; charset=utf-8");
response.getWriter().print(jsonObject);
} catch (IOException e) {
log.error("輸出返回值失敗:" + e.getMessage());
}
}
(完)