- 浏览: 156350 次
- 性别:
- 来自: 魔都
最新评论
-
renzhengzhi:
mybatis的这个批量insert为什么不是在一个事务里?
使用Mybatis做批量插入 -
forlab:
花架构威武吧唧,一统江湖
Eclipse插件之Findbugs -
恋上你的味道:
花家狗V587 神功盖屎 一桶浆糊
Netty+Tomcat热部署端口占用解决办法 -
hekuilove:
宁帅陈 写道你好,我想通过java程序获取@当前登录用户的人员 ...
新浪微博API开发流程 -
宁帅陈:
你好,我想通过java程序获取@当前登录用户的人员以及信息,怎 ...
新浪微博API开发流程
以前都是用ajax做一些简单的东东,很少用ajax做查询。今日在开发中遇到个比较基础但是却很容易犯的错误,可能会使新手束手无策,于是写此blog分享心得
好了话不多说直接步入正题贴上代码
jquery请求代码:
但是重点不在jquery里,再看java代码 注:我这里是使用的spring的Controller,这里重点不在框架,而是在返回的结果,使用任何框架都是一样的.因为你返回的东西都是一样
通过这段代码可以看到本人返回了一个List对象,看似毫无问题的代码,可是它偏偏就出了问题...jquery里始终是执行的
于是我疑惑的打开了firefox,通过firefox我发现请求响应200了
图片上的内容就是返回的是将LIST转换为JSON集合后的结果,先别管其它,至少知道了数据已经返回回来了.返回回来了为什么还error了呢?并且还提示parseerror错误?
问题就在最后一部转换的时候,LIST转换为JSON的时候
看看ApkStatisticRawBean里面究竟是什么东东
原来是我在此对象里面封装了对象
在将List转为JSON的时候会解析到ApkBean然后里面有JarBean又开始解析JarBean然后JarBean里面又有List<APkBean> 然后又开始解析ApkBean了....
死循环了...!!!
说到这里 相比不明白的差不多也明白了吧...如果你的POJO里面有太多的关联最好不要直接返回..而是针对要返回的需求再创建一个POJO内容自己填充 我这里就是这样解决的
好了话不多说直接步入正题贴上代码
jquery请求代码:
$("#show_supply_table").click(function() { var datas={time:time,event:event,supply:supply,productName:productName}; var paths=path+"/statistic/aboutSupply.shtml"; $.ajax({ type:"get", url:paths, dataType:"json", data:datas, success:function(data){ alert("对鸟!!"); },error:function(a,b){ alert(b); } }); });
但是重点不在jquery里,再看java代码 注:我这里是使用的spring的Controller,这里重点不在框架,而是在返回的结果,使用任何框架都是一样的.因为你返回的东西都是一样
/** * 处理ajax请求,返回查询结果 * * @author Quinn He * @param time 时间范围 * @param event 事件 * @param supply 供应商 * @param productName 产品名 * @dateTime 2012-3-2 下午2:19:01 * @param request * @param response * @return java.util.Map<String, Object> */ @RequestMapping(value = "/statistic/aboutSupply.shtml", method = RequestMethod.GET) @ResponseBody protected Map<String, Object> aboutSupply(@RequestParam(value = "time") String time, @RequestParam(value = "event") String event, @RequestParam(value = "supply") String supply, @RequestParam(value = "productName") String productName, final HttpServletRequest request, final HttpServletResponse response) { Map<String, Object> model = new HashMap<String, Object>(); time = StringUtils.isEmpty(time) ? null : time; event = StringUtils.isEmpty(event) ? null : event; supply = StringUtils.isEmpty(supply) ? null : supply; productName = StringUtils.isEmpty(productName) ? null : productName; String[] params = { time, event, supply, productName }; List<ApkStatisticRawBean> list = this.querySupplyDetail(params, null); model.put("aboutSupplys", list); return model; }
通过这段代码可以看到本人返回了一个List对象,看似毫无问题的代码,可是它偏偏就出了问题...jquery里始终是执行的
error:function(a,b){ alert(b); }
于是我疑惑的打开了firefox,通过firefox我发现请求响应200了
图片上的内容就是返回的是将LIST转换为JSON集合后的结果,先别管其它,至少知道了数据已经返回回来了.返回回来了为什么还error了呢?并且还提示parseerror错误?
问题就在最后一部转换的时候,LIST转换为JSON的时候
看看ApkStatisticRawBean里面究竟是什么东东
import java.util.ArrayList; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import me.gall.business.model.mybatis.bean.ApkStatisticRaw; import me.gall.business.model.mybatis.bean.SupplyInfo; import me.gall.business.service.init.SystemServiceImpl; /** * @author Quinn He * @dateTime 2012-2-9 下午4:35:18 */ public class ApkStatisticRawBean { /** * @author Quinn He * @dateTime 2012-2-29 下午6:06:24 * @param bean */ public ApkStatisticRawBean(ApkStatisticRaw bean) { this.id = bean.getId(); this.uuid = bean.getUuid(); if (bean.getApkId() != null) { this.apk = SystemServiceImpl.getInstance().getBaseApkMap().get(bean.getApkId()); } if (bean.getChannelId() != null) { this.channel = SystemServiceImpl.getInstance().getChannels().get(bean.getChannelId()); } if (bean.getSupplyId() != null) { this.supply = SystemServiceImpl.getInstance().getSupplys().get(bean.getSupplyId()).getSupply(); } this.content = bean.getContent(); if (bean.getCreateTime() != null) { this.createTime = new Date(bean.getCreateTime()); } this.creator = bean.getCreator(); if (bean.getEventId() != null) { this.event = SystemServiceImpl.getInstance().getApkStatisticCategoryEventMap().get(bean.getEventId()); } this.numbers = bean.getNumbers(); this.other = bean.getOther(); this.productName = bean.getProductName(); this.status = bean.getStatus(); if (bean.getTime() != null) { this.time = new Date(bean.getTime()); } } /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.id * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private Integer id; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.uuid * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private String uuid; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.apk_id * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private ApkBean apk; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.event_id * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private ApkStatisticCategoryEventBean event; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.supply_id * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private SupplyInfo supply; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.channel_id * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private ChannelBean channel; /** * This field was generated by MyBatis Generator. This field corresponds to the database column * apk_statistic_raw.product_name * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private String productName; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.content * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private String content; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.time * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private Date time; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.numbers * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private Integer numbers; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.status * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private Integer status; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.creator * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private String creator; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.create_time * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private Date createTime; /** * This field was generated by MyBatis Generator. This field corresponds to the database column apk_statistic_raw.other * * @mbggenerated Thu Feb 09 17:04:23 CST 2012 */ private String other; get..... set.....
原来是我在此对象里面封装了对象
private ApkBean apk;
/** * @author Quinn He * @dateTime 2011-11-15 下午2:20:27 */ public class ApkBean { ... private JarBean jar; ... }
public class JarBean { ... private List<ApkBean> apkList; ... }问题就出在这里了...我的ApkBean里面有JarBean JarBean中有List<ApkBean>
在将List转为JSON的时候会解析到ApkBean然后里面有JarBean又开始解析JarBean然后JarBean里面又有List<APkBean> 然后又开始解析ApkBean了....
死循环了...!!!
说到这里 相比不明白的差不多也明白了吧...如果你的POJO里面有太多的关联最好不要直接返回..而是针对要返回的需求再创建一个POJO内容自己填充 我这里就是这样解决的
发表评论
-
JVM相关笔记
2019-01-30 21:19 4621、检查死锁 jps -v [查看所有Java进 ... -
Git常用命令记录
2019-01-08 11:20 493强制更新 git log git reset --hard ... -
Netty+Tomcat热部署端口占用解决办法
2015-06-13 17:32 8177在eclipse使用maven deploy (tomcat: ... -
MAVEN+TOMCAT7、8的Deploy配置
2015-06-13 13:46 41、配置好conf/tomcat-users.xml,加入如下 ... -
javascript之HashMap
2015-04-16 11:23 1169用法 var map = new HashMap(); ... -
发现面向对象的美之抽象
2014-09-19 11:56 0很多开发者在面试的时候恐怕都问过或者被问过,面向对象的几大特性 ... -
ActiveMQ初级教程
2014-05-20 18:07 2652MQ的思想其实和连接池差不多,只不过一个是队列,一个是多线程。 ... -
Mybatis批量插入Oracle、MySQL
2014-05-19 16:09 5166要做批量插入数据库, ... -
ActiveMQ发送接收TextMessage、BytesMessage
2014-02-24 16:51 75131、TextMessage 发送部分 package o ... -
UDP通讯协议
2014-02-20 21:01 1182在做手机和服务端通讯时,UDP是其中可用协议之一。不过UDP的 ... -
JBOSS7配置JDNI
2014-02-13 21:52 12551、配置jar包 在jboss7的安装目录modules下建立 ... -
自定义DWR拦截器
2013-06-04 19:07 4489使用DWR和其它mvc框架混用时(如struts和spring ... -
Eclipse+TOMCAT工程如何deploy在webapps文件夹
2013-02-05 20:10 4751Eclipse集成Tomcat发布工程的时候,有时候项目发布不 ... -
根据时间的复杂统计
2012-12-07 18:24 1260客户的需求往往是各种各样的,本人在开发系统的时候遇到一个比较复 ... -
MySQL UTF-8中文排序
2012-06-15 16:08 2843假如在MySQL的表中有一列字段是中文,需要根据该字段从a-z ... -
关于:the last packet sent successfully to the server was 0 milliseconds ago
2012-04-20 10:11 2669最近老是出现个问题,早上以来公司登录公司的后台业务系统(由我是 ... -
使用Mybatis做批量插入
2012-03-30 19:50 30510最近有个需求,将excel的数据导入的数据库的这个一个操作。 ... -
过滤器chain.doFilter(req, resp);抛异常java.lang.IllegalArgumentException
2012-02-08 21:35 2598今天在开发中遇到一个错误 org.springframew ... -
关于maven工程内存溢出解决办法
2012-01-04 14:17 2135在看maven in action的时候意外发现我们项目中经常 ...
相关推荐
您可能感兴趣的文章:JQuery ajax中error返回错误及一直返回error的解答jquery中ajax使用error调试错误的方法ASP.NET中MVC使用AJAX调用JsonResult方法并返回自定义错误信息Jquery ajax执行顺序 返回自
11.2.10 jQuery.parseJSON(json) 189 11.3 函数操作 190 11.3.1 jQuery.noop 190 11.3.2 jQuery.proxy(function, scope) 190 11.4 测试操作 191 11.4.1 jQuery.contains(container, contained) 191 11.4.2 jQuery....
#9255:修复webkit内核浏览器中jQuery.parseXML不能处理异常的问题。 #9854:Pass statusText through instead of “normalizing” it #9887:修复jQuery.ajaxSetup可能导致内存浪费的问题。 #9970:Typo in ajax.js...
objjQuery.parseJSON( str ) Data functions $.clearQueue( [name] ) $.dequeue( [name] ), jQuery.dequeue( [name] ) objjQuery.data( element, key ), jQuery.data( ) obj.data( ), .data( key ) $.data( key, val...
ajaxError(callback) ajaxSend(callback) ajaxStart(callback) ajaxStop(callback) ajaxSuccess(callback) 其它 $.ajaxPrefilter([type],fn) $.ajaxSetup([options]) serialize() serializearray() 工具 ...
Chapter 8: AJAX Chat with jQuery teaches how to use AJAX to easily implement an online chat solution. This will also be your opportunity to use one of the most important JavaScript frameworks around...
[queueName]) 设置 jQuery.fx.off Ajax Ajax 请求 $.ajax([options]) load(url, [data], [callback]) $.get(url, [data], [fn], [type]) $.getJSON(url, [data], [fn]) $.getScript(url, [callback]) $.post(url, ...
data = jQuery.parseJSON(data); success(data); }, error: function (data, status, e) { error(e); }, complete: function (XMLHttpRequest, textStatus) { //hide loading... }, change: change //需要...