表单jqGrid的数据如何以json格式传到后台

本文档介绍如何通过ajax将jqGrid表格的数据以json格式发送到后台。首先在js页面获取jqGrid的数据源,若非json格式则转换。接着将数据转化为json并用ajax发送请求。在xml文件中接收请求并转发到特定java方法,java文件中从AjaxValuesBean获取参数,转为json数组后进一步处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:通过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"));  
           
           

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值