160506、Spring mvc新手入门(11)-返回json 字符串的其他方式
Spring MVC返回 json字符串的方式有很多种方法,这里介绍最简单,也是最常使用的两种方式
一、使用 PrintWriter printWriter 直接输出字符串到返回结果中
不需要任何xml文件配置
|
1
2
3
4
5
6
7
8
9
|
//返回给前台一个字符串 @RequestMapping(params = "method=getJson1") public void getJson(@RequestParam("userid") String userid,@RequestHeader("Accept-Encoding") String encoding,HttpServletRequest request,PrintWriter printWriter) { System.out.println("通过注解在参数中取值 "+userid); System.out.println("通过@RequestHeader获得的encoding "+encoding); printWriter.write("{key,1}"); printWriter.flush(); printWriter.close(); } |
请求地址:http://localhost:8080/springmvc/hello.do?method=getJson1&userid=111
返回值: {key,1}
二、通过@ResponseBody 直接返回对象,Spring MVC会自动把对象转化成Json
需要其他配置支持
1、开启 <mvc:annotation-driven />
2、Jackson library 对应的jar必须加入到工程中
3、方法的返回值必须添加 @ResponseBody
|
1
2
3
4
5
6
7
8
|
//把返回结果解析成json串返回到前台 @RequestMapping(params = "method=json") public @ResponseBody User passValue(HttpServletRequest request) { User user = new User(); user.setUser("aaaa"); user.setPass("asfd"); return user; } |
请求地址:http://localhost:8080/springmvc/hello.do?method=json
返回值:{"user":"aaaa","pass":"asfd"}
注意:在使用@ResponseBody 返回json的时候,方法参数中一定不能他添加 PrintWriter printWriter
java.lang.IllegalStateException: getWriter() has already been called for this response
例如:
//这个方法会报错 因为使用了PrintWriter printWriter 错误 java.lang.IllegalStateException: getWriter() has already been called for this response
|
1
2
3
4
5
6
7
|
@RequestMapping(params = "method=jsonTest") public @ResponseBody Map<String, Object> jsonTest(@RequestParam("userid") String userid,HttpServletRequest request,PrintWriter printWriter) { System.out.println("通过注解在参数中取值 "+userid); System.out.println("通过自己写的函数从reqeust取值 "+RequestUtil.getMap(request).get("userid")); HelloWorld hello = new HelloWorld(RequestUtil.getMap(request)); return hello.hello(); } |
提醒:注意两种方法不能混用,不然会报错如下:
160506、Spring mvc新手入门(11)-返回json 字符串的其他方式的更多相关文章
- Spring MVC全局异常后返回JSON异常数据
问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内 ...
- spring mvc 利用匿名内部类构建返回json对象
@RequestMapping(value = "/order/findOrderByIdVague/{noId}.json", method = {RequestMethod.G ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- spring mvc返回json字符串的方式
spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json 优点:不需要自己再处理 步骤一:在spring- ...
- Spring Mvc的入门
SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的. Spring Web MVC是什么: Sprin ...
- Spring MVC【入门】
Spring MVC[入门]就这一篇! MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Mod ...
- spring mvc接收ajax提交的JSON数据,并反序列化为对象
需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...
- MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式。
原文链接:https://www.muhanxue.com/essays/2015/01/8623699.html MVC web api 返回JSON的几种方式 1.在WebApiConfig的Re ...
- Spring MVC 解决 Could not write JSON: No serializer found for class java.lang.Object
Spring MVC 解决 Could not write JSON: No serializer found for class java.lang.Object 资料参考:http://stack ...
随机推荐
- WCF实现RESTFul Web Service
共同学习了前面一些概念,终于开始正题了哈.RESTful的Web Service调用直观,返回的内容容易解析.这里先会描述一个简单的场景--Web Service提供一个方法来搜索个人信息,传入人名, ...
- 详解php的安装模式---CGI,FASTCGI,php-fpm,mod_php,mod_cgi,mod_fcgid
1. CGI CGI是通用网关接口,HTTP服务器使用这样的接口程序来和“其他程序”(比如PHP的解释器程序)通讯,这个“其他程序”可以使用任何计算机语言来编写,它通过CGI这个接口从HTTP服务器取 ...
- Java字节码指令
1. 简介 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(称为操作码)以及跟随其后的零至多个代表此操作所需参数(称为操作数)而构成. 由于Java虚拟机采用面向操作数栈而不是寄存 ...
- iOS-获取苹果商店iPhone应用程序编号APPID-应用中跳转到AppStore中的其他应用
iOS-获取苹果商店iPhone应用程序编号APPID-应用中跳转到AppStore中的其他应用 一 获取苹果商店iPhone应用程序编号APPID 1 在mac上打开itunes 选择中的A 然后 ...
- DRBD安装配置、工作原理及故障恢复
一.DRBD简介 DRBD的全称为:Distributed ReplicatedBlock Device(DRBD)分布式块设备复制,DRBD是由内核模块和相关脚本而构成,用以构建高可用性的集群.其实 ...
- svn 脚本替换
#!/bin/bashfor i in `find /home/20180629tmp/svnfwq/uadminv4 -name .svn` do echo $i aa=`dirname $i` b ...
- PHP多进程编程(一)
虽然PHP 中,多进程用的比较的少.但是毕竟可能是会用到了.我最近就遇到这样一个问题,用户提交几百个url以后,要读出这个url 中的标题. 当然,你不希望用户等待的太久,10s 钟应该给出个答案.但 ...
- IOC控制反转
IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,还有些书籍翻译成为“控制反向”或者“控制倒置”. 1996年,Michael Mattson在一篇有关探讨面 ...
- CAEmitterCell 和 CAEmitterLayer具体解释
一.在 UIKit 中,粒子系统由两部分组成: 1· 一个或多个 CAEmitterCells :发射器电池能够看作是单个粒子的原型(比如,一个单一的粉扑在一团烟雾).当散发出一个粒子,U ...
- C# 创建XML文件
private void CreateXMLFile(string pathAndFileName) { XmlDocument doc = new XmlDocument(); XmlElement ...