将后台数据传到前台JSON应用
来源:互联网 发布:万维网官网域名 编辑:程序博客网 时间:2024/06/02 01:13
先看看源代码:
_page=voucher4TestCSharp.queryForPagePDF(admdivcode,styeay, vtcode,star_voucherno,curPage, pageSize); if(_page!=null){ list = _page.getResultList(); } listMap = new ArrayList<Map<String,String>>(); for(VoucherDTO_PDF newVoucherDTO_PDF:list){ Map<String,String> map = null; map = BeanUtils.describe(newVoucherDTO_PDF); String voucher_no=newVoucherDTO_PDF.getVoucher_no(); String quhua_code=newVoucherDTO_PDF.getAdmdivcode(); String vt_code=newVoucherDTO_PDF.getVt_code(); String styear=newVoucherDTO_PDF.getStyear(); map.put("download", "<a href=javascript:download('"+voucher_no+"','"+quhua_code+"','"+vt_code+"','"+styear+"')>下凭证载</a>"); listMap.add(map); }Map<String,List<Map<String,String>>> resultMap = new HashMap<String,List<Map<String,String>>>();resultMap.put("data", listMap);JSONObject jo = JSONObject.fromObject(resultMap);jo.put("recordCount", _page.getTotalRows());this.actionWrite(jo.toString());return null;
写回到前台的数据JO:
{"data":[ {"admdivcode":"110000","voucher_no":"TCNO1818745456","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('TCNO1818745456','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"TCNO174881120","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('TCNO174881120','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"TCNO1981697224","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('TCNO1981697224','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"TCNO2054239848","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('TCNO2054239848','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"yk00002","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('yk00002','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"TCNO323306459","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('TCNO323306459','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"LL00001","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('LL00001','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"yk00001","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('yk00001','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"TCNO218019412","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('TCNO218019412','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"TCN323306459","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('TCN323306459','110000','1101','2014')>下凭证载<\/a>"}, {"admdivcode":"110000","voucher_no":"TCN11O323306459","vt_code":"1101","styear":"2014","download":"<a href=javascript:download('TCN11O323306459','110000','1101','2014')>下凭证载<\/a>"} ], "recordCount":11}
最重要的是格式,以什么样的格式即最终要以JSON的格式传到后台去。这个格式是JSON的规范,所以不难理解为什么为什么在后台Java代码中费劲心思不断将数据转换成Map,
Map<String,String> map = null;map = BeanUtils.describe(newVoucherDTO_PDF);
Listt数组,再将List转换成Map数组,
List<Map<String,String>> listMap=null;listMap = new ArrayList<Map<String,String>>();listMap.add(map);
Map<String,List<Map<String,String>>> resultMap = new HashMap<String,List<Map<String,String>>>();放入数据:resultMap.put("data", listMap);
最后将map装换成JSON数据,通过JSONObject类
将map转换为JSON数据:JSONObject jo = JSONObject.fromObject(resultMap);
对于前台的数据接收:前台其实是自动将JSON解析出来的,不需要程序员的参与,JSON本身就是一个Map,一个标准。【以下是公司封装的,只供参考】
一个关于得到GridPanel内容的函数:
function getStore(urlpath, fileds) {var fields = getFiled(fileds);var store = new Ext.data.JsonStore( {proxy: { type: 'ajax', url : urlpath, timeout: 90000, reader: { <strong>type: 'json', root: 'data',totalProperty : 'recordCount'</strong>}},pageSize: itemsPerPage,//remoteSort : true,fields : fields,autoLoad : false});return store;}
黑体标记的就是传递过来的数据。
再看看var fields = getFiled(fileds);此时功能只是要显示部分列选项数据。
function getFiled(filed) {var fields = filed.split(",");var filed = "[";for ( var i = 0; i < fields.length; i++) {filed = filed + "{name: '" + fields[i] + "'},";}filed = filed.substring(0, filed.length - 1);filed = filed + "]";return strToJson(filed);}
可以看到这个fields的格式其实和data根数据的格式是相对应的。
总结:不管怎样后台传递JSON数据的格式是固定的,这点要清楚,这是一个规范。
JSON基础:http://baike.baidu.com/view/136475.htm#【百度百科】
以上是自己对后台拼JSON到前台的领悟,非常不清楚,只供参考。
0 0
- 将后台数据传到前台JSON应用
- 后台数据map转json传到前台
- struts2-通过action从后台将json数据传到前台的方法(一)
- struts2-通过action从后台将json数据传到前台的方法(二)
- SpringMVC中的ModelMap(将后台数据传到前台页面)
- 前台将多个json对象传到后台解析
- 前台json数组传到后台解析
- Json:前台对象数组传到后台解析
- Json:前台对象数组传到后台解析
- Json:前台对象数组传到后台解析
- Json:前台对象数组传到后台解析
- 前台将实体对象以json串形式传到后台并解析
- 前台传到后台的数据乱码
- EL后台数据传到前台${}无法获取
- springmvc--前台表单数据传到后台
- 前台传到后台的数据为“”
- struts2跟easyui 示例一 后台生成json数据传到前台html页面
- 原来JSF页面可以这样将前台处理的数据传到后台处理!
- 黑马程序员-C语方关于i++和i--的区别
- 【MFC动态创建按钮,并在按钮上实现位图的切换显示】
- java-集合操作
- hdu4611 Balls Rearrangement,模拟
- Android各种资源引用的方法
- 将后台数据传到前台JSON应用
- nyoj90整数划分
- Moo University - Financial Aid(2010)
- html-上左右布局方式---ShinePans
- IQ调制、成型滤波及星座映射
- java 之 IO
- [C语言基础]一些C语言小程序(二)
- [leetcode]Remove Duplicates from Sorted Array
- ESP定律脱压缩壳