码迷,mamicode.com
首页 > Web开发 > 详细

struts2发送ajax的几个问题(不使用struts2-json-plugin的情况下)

时间:2017-08-05 21:56:46      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:发送数据   一个   注意   app   struts   post   有一个   效率   而且   

采用原始方式发送ajax到action时,会遇到get,post的不同,原因是ContentType的问题,ContentType必须是text/html,struts获取到的inputStream才会有值!而默认jquery发送ajax采用的ContentType是application/x-www-form-urlencoded; charset=UTF-8,如果手动设置为json格式进行发送,那么struts2就获取不到数据了,所以在采用Post提交时不用指定ContentType,采用默认的就行,这点和Springmvc不一样,Springmvc发送json时得指定 contentType 为 ‘application/json;charset=utf-8‘,而且json得是完全格式的字符串,但是struts2不光contentType只支持text/html,而且发送数据也不需要转成json字符串,直接发送json对象即可,有点坑啊

技术分享

 

 技术分享

 

采用原始方式输出json时,可以使用fastjson,这个效率比较高,不过下列几点得注意:

1、不需要进行json转换的字段,在set方法上加上@JSONField(serialize=false)
2、相互引用的对象,必须有一个对象的属性set方法上加上@JSONField(serialize=false),以防循环引用
3、fastjson转换数据不能使用hibernate的load方法获取到的数据,报堆栈溢出错误
4、list中相同对象进行json转换时,默认下一对象会显示成一个引用前一个的ref,需要设置一下fastjson对相同对象同样进行json转换
String jsonStr = JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect);//关闭引用检测后

struts2发送ajax的几个问题(不使用struts2-json-plugin的情况下)

标签:发送数据   一个   注意   app   struts   post   有一个   效率   而且   

原文地址:http://www.cnblogs.com/javabg/p/7291421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!