• struts2与常用表格ajax操作的json传值问题


      struts与常用的dataTables和jqueryGrid等表格进行ajax传值时,经常会传值不适配的问题,这是因为struts在进行ajax操作时已经对你要操作的json数据进行了处理,所以不需要再在action中转换为json字符串以jqueryGrid为例

      1.action中的代码如下:

      首先得到jqueryGrid需要的各个属性值,totals,pages,page,rows,这些属性我在前台进行的一些转换,所以代码中的属性名称与这些属性名有些差异,将得到的属性值放在一个action中定义的map集合中

    setMap(this.getJsonMap(totalPages, getPage(), totalRecord, equipList));
    public Map<String, Object> getJsonMap(int totalpages, int currentpage, int totalrecords, List data){
      Map<String, Object> map = new HashMap<String, Object>();
      map.put("totalpages", totalpages);
      map.put("currentpage", currentpage);
      map.put("totalrecords", totalrecords);
      map.put("data", data);
      return map;
     }

      2.struts配置文件中的代码

      其中的root为action返回结果中传到前台的变量,这里strus已经帮我们转换了,所以无需再自己写转换为字符串的代码,如何不写root,则会将action中所有的变量都转换为json对象

    <action name="equipInfo" class="com.audiovisualcenter.action.EquipManagerAction" method="equipManager">
       <result name="success" type="json">
          <param name="root">map</param>
       </result>
     </action>

      3.前台的表格一般都需要json对象,所以可以直接适配

      下面是我的前台js代码,为了方便,只粘贴了部分代码

    $("#grid-table").jqGrid({
         jsonReader : {  
          root:"data",
          page: "currentpage",
          total: "totalpages",
          records: "totalrecords",
          repeatitems: false,
         }, 
         url:"equipInfo",
         datatype: "json",
         mtype:"post",
         height: 400,
         colNames:['操作','序号','名称','编号', '总数','类型','状况'],
         colModel:[
          {name:'myac',index:'', 80, fixed:true, sortable:false, resize:false},
          {name:'id',index:'id', 60, sortable:false,editable: false},
          {name:'name',index:'name',90, editable:true, sorttype:"date",/*unformat: pickDate*/},
          {name:'no',index:'no', 90,editable: true,editoptions:{size:"20",maxlength:"30"}},
         viewrecords : true,
         recordtext:"显示第 {0} 至 {1} 项结果,共{2}条结果",
         emptyrecords:"未查询到任何记录",
         rowNum:10,
         rowList:[10,20,30],
         pager : "#grid-pager",
         pgtext:"{0}",
         altRows: true,
         auto true,
         //shrinkToFit:false,
         //加载完成后的修改
         loadComplete : function() {
          var table = this;
         },
        });
  • 相关阅读:
    django 我的博客 (慕课网视频)笔记
    读 django 中文文档投票例子笔记
    django的安装和初步使用
    Debug模式自定义NSlog
    重写NSString的setter方法
    iOS 常用代码之 UICollectionView
    生成100个 "20180520" 这样的时间字符串 写入txt文件
    WRNavigationBar 使用记录
    关于iphone设置显示模式为标准模式和放大模式时的区别
    CGContextRef 使用小记
  • 原文地址:https://www.cnblogs.com/overfly/p/8085130.html
Copyright © 2020-2023  润新知