• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > 详解springmvc之json数据交互controller方法返回值为简单类型

详解springmvc之json数据交互controller方法返回值为简单类型

作者:思念悲伤 字体:[增加 减小] 来源:互联网 时间:2017-05-28

思念悲伤 通过本文主要向大家介绍了springmvc注解详解,springmvc详解,springmvc配置详解,springmvc框架详解,springmvc原理详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

当controller方法的返回值为简单类型比如String时,该如何与json交互呢?

使用@RequestBody

比如代码如下:

@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
@ResponseBody
public String ceshijson(@RequestBody String channelId) throws IOException{

 return channelId;

</div>

如果代码为上面这种情况时,前台发送json时,应该这样写(写法有很多,能用就行)

function channel(){
   //先获取选中的值
   var channelId = $("#channelId option:selected").val();
   //来判断发送的链接
   if(channelId ==2){


   $.ajax({
     url:"ceshijson",
     type:"post",
     dataType:'json',
     contentType:'application/json;charset=utf-8',
     data:JSON.stringify({'channelId':channelId}),
     success:function(data){
      alert(data.channelId);
     },
     error:function(XMLHttpRequest, textStatus, errorThrown){ 
     alert("Error") 
     alert(XMLHttpRequest.status); 
     alert(XMLHttpRequest.readyState); 
     alert(textStatus); 
     }
   });
   }
  }

</div>

这里需要特别注意:上篇也强调过,使用了@RequestBody时,它要求String channelId接收到数据为json字符串。也就是要是data写成这样: data:{‘channelId':channelId},就是错误的。因为这是json对象形式。

要是你不想使用JSON.stringify()这个函数,那就自己手动字符串拼接:

data:'{"channelId":'+channelId+'}'
</div>

这里还要注意channelId是双引号,不能写成单引号,因为这是json语法规则。你改成单引号,也就是

**错误写法

data:"{'channelId':"+channelId+"}"
</div>

这种形式,虽然可以传给后台,但是后台传回来的会出现undefined。也就是key必须要用双引号包围。

不使用@RequestBody

 @RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
 @ResponseBody
 public String ceshijson(String channelId) throws IOException{
  Map<String,Object> map = new HashMap<String,Object>();
   map.put("channelId", channelId);
   ObjectMapper mapper = new ObjectMapper();
   channelId = mapper.writeValueAsString(map);
  return channelId;
 }
</div>

前台代码

$.ajax({
   url:"ceshijson",
   type:"post",
   dataType:'json',
   //contentType:'application/json;charset=utf-8',
   data:"channelId="+channelId,
   success:function(data){
    alert(data);
   },
   error:function(XMLHttpRequest, textStatus, errorThrown){ 
     alert("Error") 
     alert(XMLHttpRequest.status); 
     alert(XMLHttpRequest.readyState); 
     alert(textStatus); 
    }
});

</div>

这种方式利用ObjectMapper中的writeValueAsString将Java对象转换为json字符串。

总结:这种方式,其实是没有多大的实际意思,因为一般接收数据不是这么接收的。只做了解!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • springMvc注解之@ResponseBody和@RequestBody详解
  • Spring依赖注入的两种方式(根据实例详解)
  • 详解如何用spring Restdocs创建API文档
  • 详解Spring简单容器中的Bean基本加载过程
  • 详解springmvc之json数据交互controller方法返回值为简单类型
  • 详解springMVC之与json数据交互方法
  • 详解SpringMVC和MyBatis框架开发环境搭建和简单实用
  • 详解Spring-Boot集成Spring session并存入redis
  • spring的几个重要类和接口(详解)
  • 详解spring+springmvc+mybatis整合注解

相关文章

  • 2017-05-28Java多线程并发编程 Synchronized关键字
  • 2017-05-28Spring4整合Hibernate5详细步骤
  • 2017-05-28Java本地缓存的实现代码
  • 2017-05-28详解MyBatis批量插入数据Mapper配置文件的写法
  • 2017-05-28java实现ftp上传 如何创建文件夹
  • 2017-05-28详解Java中Collections.sort排序
  • 2017-05-28Java中的HashSet详解和使用示例_动力节点Java学院整理
  • 2017-05-28JAVA实现简单停车场系统代码
  • 2017-05-28Spring Session实现分布式session的简单示例
  • 2017-05-28详解在Spring Boot中使用Mysql和JPA

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详述SpringMVC框架中拦截器Interceptor的使用方法
    • java 中ThreadPoolExecutor原理分析
    • 详谈java线程与线程、进程与进程间通信
    • Java多线程下载文件实例详解
    • Java进阶学习之路
    • java数据结构与算法之冒泡排序详解
    • hsdis插件查看汇编码
    • Java使用LinkedHashMap进行分数排序
    • Java通过在主循环中判断Boolean来停止线程的方法示例
    • Java中ArrayList类的源码解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有