Springmvc JSON交互
先上前端javascript。ajax代码
- <pre name="code" class="javascript"> function testAjaxS(){
- $.ajax({
- type:'post',
- url:'material/testAjax',
- data:'MediaId:手',
- success:function(data){//返回json结果
- alert("success");
- }
相应的Spring mvc 接收代码
- @RequestMapping("/testAjax")
- public @ResponseBody WXMedia testAjax(WXMedia wxMedia){ //值得注意的地方,參数中没有@RequestBody, 而且该POJP类必须有一个无參构造器
- System.out.println(wxMedia);
- return wxMedia;
- }
另外一种:
- function testAjaxS(){
- $.ajax({
- type:'post',
- url:'material/testAjax2',
- //json字符串必须设置
- contentType:'application/json;charset=utf-8',
- //数据格式是json字符串
- data:"{'MediaId':'手'}",
- success:function(data){//返回json结果
- alert("success");
- }
- });
相应的spring mvc 接收代码
- @RequestMapping("/testAjax2")
- public @ResponseBody WXMedia testAjax2(@RequestBody WXMedia wxMedia){ //这里有RequestBody
- System.out.println(wxMedia);
- return wxMedia; //返回的也会是一个json字符串,尽管方法返回值是POJO类
- }
接收JSON数组:
前端代码:
- function testAjaxS(){
- $.ajax({
- type:'post',
- url:'material/testAjax3',
- contentType:'application/json;charset=utf-8',
- data:JSON.stringify([{"MediaId":"1"},{"MediaId":"2"}]), //2个对象
- success:function(data){//返回json结果
- alert("success");
- }
- });
后台接收:
- @RequestMapping("/testAjax3")
- public @ResponseBody WXMedia[] testAjax3(@RequestBody WXMedia[] wxMedia){
- System.out.println(wxMedia.length);
- return wxMedia;
- }
总结:
@RequestBody: 接受json字符串。后面跟对应的POJO类型就可以,假设是数组则打上[],不加该注解则接收普通的參数请求
@ResponseBody:以JSON格式返回POJO对象
/* **************************2015年11月24日 11:59:13 **************************
*/
如果有这么一个对象:
- var obj = {
- userId : userId,
- xxxId : xxxId
- }
在AJAX中用:
- function testAjaxS(){
- $.ajax({
- type:'post',
- url:'material/testAjax2',
- //json字符串必须设置
- contentType:'application/json;charset=utf-8',
- //数据格式是json字符串
- //data:JSON.stringify(obj), // 这样会出错,发送的时候数据就会在后面多一个:,由此可得。我们仅仅用写对象即可!
- data: obj,
- success:function(data){//返回json结果
- alert("success");
- }
- });
/* ************************** 2016年3月14日 12:06:03 **************************
*/
方法前加了
- @ResponseBody 则方法參数中。不能直接使用对象 比如:
- <pre style="background-color:#ffffff;color:#000000;font-family:'Consolas';font-size:12.0pt;">
@ResponseBody
public RespJSON<Map> listJson(Map map, Product product// 这个不行!。。 @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "6") Integer pageSize)
会报JSON反序列化错误
Springmvc JSON交互的更多相关文章
- 关于springmvc json交互产生的406错误
产生错误的背景:springmvc使用<mvc:annotation-driven>进行配置,那么只要引入响应的json解析包就可以了.在pom中已经引入了如下: <dependen ...
- SpringMVC详解(六)------与json交互
Json(JavaScript Object Notation),它是一种轻量级数据交换格式,格式简单,易于读写,目前使用特别广泛.那么这篇博客我们主要谈谈在 SpringMVC 中,如何对 json ...
- SpringMVC框架五:图片上传与JSON交互
在正式图片上传之前,先处理一个细节问题: 每一次发布项目,Tomcat都会重新解压war包,之前上传过的图片会丢失 为了解决这个问题:可以不在Tomcat下保存图片,而是另找一个目录. 上传图片: & ...
- springMVC的高级数据绑定,以及json交互,全局异常配置,
一.窄化请求映射 1.在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,通过此方法对url进行分类管理. 如下: @Con ...
- springmvc实现json交互 -requestBody和responseBody
json数据交互 1.为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. 2. ...
- Ajax json交互和SpringMVC中@RequestBody
Ajax json交互和SpringMVC中@RequestBody 标签: 背景 自己提供出去得接口中参数设置为@RequestBody VipPromotionLog vipPromotionLo ...
- SpringMVC之JSON交互
#什么是json? json是一种用于储存数据格式,是js脚本语言的子集. #json的作用? 它可以传递对象.数组等数据结构.如果是单个数据,则要用数组,不用对象,因为对象都是键值对的 方式去存储, ...
- springMVC+json构建restful风格的服务
首先.要知道什么是rest服务,什么是rest服务呢? REST(英文:Representational State Transfer,简称REST)描写叙述了一个架构样式的网络系统.比方 web 应 ...
- SpringMVC-05 Json交互处理
SpringMVC-05 Json交互处理 Json 1.什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别 ...
随机推荐
- ACdream 1157 Segments
Segments Time Limit: 2000ms Memory Limit: 10000KB This problem will be judged on ACdream. Original I ...
- C#-WebService基础01
来自为知笔记(Wiz)
- ida动态调试so,在init_array和JNI_ONLOAD处下断点
本文涉及到的apk.请在github下载https://github.com/jltxgcy/AliCrack/AliCrackme_2.apk. 0x00 怎样在JNI_ONLOAD下断点.參考安卓 ...
- poj3071之概率DP
Football Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2667 Accepted: 1361 Descript ...
- ThinkPHP5.0最最最最最简单实例
ThinkPHP5.0最最最最最简单实例 一.效果图 二.操作步骤 1.用mysql数据库建立数据库 2.按照ThinkPHP官网的指示装好ThinkPHP5.0 tp5里面的目录结构如下: 3.配置 ...
- [JZOJ 5905] [NOIP2018模拟10.15] 黑暗之魂(darksoul) 解题报告 (拓扑排序+单调队列+无向图基环树)
题目链接: http://172.16.0.132/senior/#main/show/5905 题目: oi_juruo热爱一款名叫黑暗之魂的游戏.在这个游戏中玩家要操纵一名有 点生命值的无火的余灰 ...
- C++之易混淆知识点二
1.数据抽象与封装 数据抽象是一种接口和实现相分离的编程技术,设计者关心的是如何实现这些接口,而使用者仅仅知道这些接口,抽象地考虑这些接口做什么的就可以了,不必去考虑如何实现这一层次. 封装是将低层次 ...
- 前端的console.log的效果写法
不说废话,直接上代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...
- 【原创】关于class.forname
连接数据库前都要调用一下class.forname("driverName");然后使用DriverMnager获取连接,这是为什么呢? 首先jdbc标准要求,每个驱动必须向Dri ...
- cuda float atomic操作
atomic add.用第二个,暂时还没弄明白 #ifdef FLOAT #define T float #else #define T int #endif #ifdef FORUM __devic ...