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 ...
随机推荐
- 【C语言】C语言程序所占内存分类
参考"http://blog.sina.com.cn/s/blog_63d4849c01014qg3.html" C语言内存分为5部分:堆.栈.全局(静态)区.常量区(只读)和代码 ...
- Java 之进制转换
//十进制转十六进制 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scan ...
- Nginx - Windows下Nginx初入门,附CentOS下Nginx的安装
公司刚使用nginx,预先学习下.鉴于机器没有Linux环境,在Windows熟悉下. 下载 目前(2015-07-11),nginx的稳定版本是1.8.0,在官网下载先,windows版的nginx ...
- Python删除列表中元素
Python中列表(list)是很常用的数据结构,删除列表中的元素有几种方法 列表的remove方法 lst = [1, 1, 3, 4] lst.remove(1) # lst->[1, 3, ...
- js中如何判断一个字符串包含另外一个字符串?
js中判断一个字符串包含另外一个字符串的方式比较多? 比如indexOf()方法,注意O是大写. var test="this is a test"; if(test.indexO ...
- AIX中查找端口号和进程
1.由端口号查找进程 维护系统或检查到不明的端口自然要去查一下这个端口是由哪个进程来监听的windows可以用命令netstat -ano来查端口对应的进程的pid. aix却并不能,aix需要使用下 ...
- VBA 获得绝对地址控制焦点的设置
先上代码,有时间再补上说明. Dim Mefoucs As String MsgBox "你选定的当前单元格是:" & Selection.Address Mefoucs ...
- JQuery.getJSON 没反应
Jquery是一个优秀的Javascrīpt框架,轻量级的js库,它兼容CSS3.jQuery使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站提供AJAX ...
- spring boot初步尝试
第一次知道spring boot这个项目是为在学习spring的时候,在官网上看到的,那个时候不知道这个项目是干嘛的,也就没再继续关注了 这些天实习没什么事做,一直没用spring框架了,就想着去官网 ...
- hdu6143 Killer Names 容斥+排列组合
/** 题目:hdu6143 Killer Names 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6143 题意:有m种字符(可以不用完),组成两个长度 ...