需求:通过ajax将页面表单的数据传到后台,以json格式
1.js页面
①获取jqGrid的数据源
var postData = $("#jqGrid").getGridParam('data');
ps:如果该 jqGrid绑定的数据源已经是json格式,不需要转化,如果不是需要转换
②将获取的数据源转换为json格式(存放在array数组中)
var jsonGridInfo = JSON.stringify(postData);

③ 通过ajax传递参数。发送请求。
postData = {
"value(daysDetileGridInfo)" : daysDetileGridInfo,
"value(keiyakuNendo)" : keiyakuNendo,
"value(printId)" : printId,
"value(selectedMonth)" : month,
};
$.ajax(
{
url : sofia.contextPath()
+ '/keiyaku/wfgm1000/wfgm1130/exportExcel.do',
dataType : 'json',
data : postData,
}).done(function(data) {
alert("回调函数");
});
2.xml文件
<action path="/keiyaku/wfgm1000/wfgm1130/exportExcel"
name="ajaxForm" scope="request" validate="false" extends="//AuthCommandAction">
<set-property key="copyBeanToForm" value="false" />
<set-property key="facadeInterface" value="jp.co.bsnnet.sofia.service.keiyaku.wfgm1000.Wfgm1130Facade" />
<set-property key="method" value="exportExcel" />
<set-property key="ajax" value="true" />
</action>
ps:接收js页面请求,转发到Wfgm1130Facad的exportExcel方法。会把参数自动装配到ajaxForm中,ActionForm
其实是以map形式来存放传递的参数。value:daysDetileGridInfo key: daysDetileGridInfo
3.java文件
public void exportExcel(AjaxValuesBean param, AjaxOutputStreamWrapper output)
①AjaxValuesBean中包含传入的参数。
②取出参数
Map ajaxParams = param.getValues();
Object daysDetileGridInfoPatam = ajaxParams.get("daysDetileGridInfo");
String gridInfo = daysDetileGridInfoPatam.toString();
③ 转换为json格式的数组
JSONAware jsonValue = parseJson(gridInfo);
JSONArray jsonArray = (JSONArray)jsonValue;
④使用
JSONObject json = (JSONObject) jsonArray.get(0);
String contractNumber = checkNull(json.get("contractNumber"));
本文档介绍如何通过ajax将jqGrid表格的数据以json格式发送到后台。首先在js页面获取jqGrid的数据源,若非json格式则转换。接着将数据转化为json并用ajax发送请求。在xml文件中接收请求并转发到特定java方法,java文件中从AjaxValuesBean获取参数,转为json数组后进一步处理。

被折叠的 条评论
为什么被折叠?



