spring mvc返回json字符串的方式
spring mvc返回json字符串的方式
方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json
优点:不需要自己再处理
步骤一:在spring-servlet.xml文件中配置如下代码
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc.xsd ">
- <!--使用Annotation方式 完成映射 -->
- <!--让spring扫描包下所有的类,让标注spring注解的类生效 -->
- <context:component-scan base-package="cn.yxj.controller"/>
- <mvc:annotation-driven/>
- <!--视图解析器 -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/jsp/"></property>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </beans>
步骤二:在处理器方法中打上@ResponseBody 标签
- @RequestMapping(value="/hello5.do")
- @ResponseBody
- public String hello(HttpServletResponse response) throws IOException{
- UserInfo u1=new UserInfo();
- u1.setAge(15);
- u1.setUname("你好");
- UserInfo u2=new UserInfo();
- u2.setAge(152);
- u2.setUname("你好2");
- Map<String,UserInfo> map=new HashMap<String, UserInfo>();
- map.put("001", u1);
- map.put("002", u2);
- String jsonString = JSON.toJSONString(map);
- return jsonString;
- }
步骤三:使用ajax进行获取数据
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'index.jsp' starting page</title>
- <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
- <script type="text/javascript">
- $(function(){
- $("#btn").click(function(){
- $.ajax({
- url:"<%=path%>/Five.do",
- success:function(data){
- //解析对象
- //alert(data.uname+"\n"+data.age);
- //解析map
- //alert(data.info.age+"\n"+data.info.uname);
- //解析list
- $.each(data,function(i,dom){
- alert(dom.uname+"\n"+dom.age);
- });
- }
- });
- });
- });
- </script>
- </head>
- <body>
- <input type="button" value="ajax" id="btn"/>
- </body>
- </html>
方案二:处理器方法的返回值---Object
由于返回Object数据,一般都是将数据转化为JSON对象后传递给浏览器页面的,而这个由Object转换为Json,是由Jackson工具完成的,所以要导入jar包,将Object数据转化为json数据,需要Http消息
转换器 HttpMessageConverter完成。而转换器的开启,需要由<mvc:annotation-driven/> 来完成,当spring容器进行初始化过程中,在<mvc:annotation-driven/> 处创建注解驱动时,默认创
建了七个HttpMessageConverter对象,也就是说,我们注册<mvc:annotation-driven/>,就是为了让容器帮我们创建HttpMessageConverter对象
详细代码看
方案二、使用返回字符串的处理器方法,去掉@ResponseBody注解
步骤一、同上
步骤二
- @RequestMapping(value="/hello5.do")
- public String hello(HttpServletResponse response) throws IOException{
- UserInfo u1=new UserInfo();
- u1.setAge(15);
- u1.setUname("你好");
- UserInfo u2=new UserInfo();
- u2.setAge(152);
- u2.setUname("你好2");
- Map<String,UserInfo> map=new HashMap<String, UserInfo>();
- map.put("001", u1);
- map.put("002", u2);
- String jsonString = JSON.toJSONString(map);
- return jsonString;
- }
步骤三、在前台取值的时候需要我么做一遍处理
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'index.jsp' starting page</title>
- <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
- <script type="text/javascript">
- $(function(){
- $("#btn").click(function(){
- $.ajax({
- url:"<%=path%>/hello5.do",
- success:function(data){ //data指的是从server打印到浏览器的数据
- //jsonString jsonObject
- //{"001":{"age":122,"name":"顺利就业"}}
- var result= eval("("+data+")");
- $.each(result,function(i,dom){
- alert(dom.age+"\n"+dom.uname);
- });
- // alert(result["001"]["age"]);
- }
- });
- });
- });
- </script>
- </head>
- <body>
- <input type="button" value="ajax" id="btn"/>
- </body>
- </html>
方案三:使用无返回值的处理器方法
步骤一:同上
步骤二:使用响应流回送数据
- @RequestMapping(value="/hello5.do")
- public void hello(HttpServletResponse response) throws IOException{
- UserInfo u1=new UserInfo();
- u1.setAge(15);
- u1.setUname("你好");
- UserInfo u2=new UserInfo();
- u2.setAge(152);
- u2.setUname("你好2");
- Map<String,UserInfo> map=new HashMap<String, UserInfo>();
- map.put("001", u1);
- map.put("002", u2);
- String jsonString = JSON.toJSONString(map);
- response.setCharacterEncoding("utf-8");
- response.getWriter().write(jsonString);
- response.getWriter().close();
- }
步骤三:在前台取值也需要做处理
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'index.jsp' starting page</title>
- <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
- <script type="text/javascript">
- $(function(){
- $("#btn").click(function(){
- $.ajax({
- url:"<%=path%>/hello5.do",
- success:function(data){ //data指的是从server打印到浏览器的数据
- //jsonString jsonObject
- //{"001":{"age":122,"name":"顺利就业"}}
- var result= eval("("+data+")");
- $.each(result,function(i,dom){
- alert(dom.age+"\n"+dom.uname);
- });
- // alert(result["001"]["age"]);
- }
- });
- });
- });
- </script>
- </head>
- <body>
- <input type="button" value="ajax" id="btn"/>
- </body>
- </html>
spring mvc返回json字符串的方式的更多相关文章
- spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable
1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(val ...
- spring mvc返回json格式和json字符串
首先有必要说一下,json和json字符串是不一样的,后者是一个字符串.而json是一个对象 当然如果调用位置是后台程序这几乎没有区别,因为在后台,无论什么格式数据,都是从响应流中读取字符串. 但是在 ...
- spring mvc 返回json数据的四种方式
一.返回ModelAndView,其中包含map集 /* * 返回ModelAndView类型的结果 * 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式 ...
- Spring MVC返回json数据给Android端
原先做Android项目时,服务端接口一直是别人写的,自己拿来调用一下,但下个项目,接口也要自己搞定了,我想用Spring MVC框架来提供接口,这两天便抽空浅学了一下该框架以及该框架如何返回json ...
- 使用spring mvc返回JSON,chrome可以,firefox不行的问题定位
转载http://ks.netease.com/blog?id=4024 作者:李景 场景: 前端Post请求同一个url地址,在chrome浏览器上有正常返回json,而在 ...
- spring入门(四) spring mvc返回json结果
前提:已搭建好环境 1.建立Controller package com.ice.controller; import com.ice.model.Person; import org.springf ...
- 转:spring mvc返回json数据格式
转:http://www.cnblogs.com/ssslinppp/p/4675495.html <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: ...
- Spring mvc 返回json格式 - 龙企阁 - 博客频道 - CSDN.NET
第一次使用spring mvc ,在此也算是记录一下以防忘记,希望有经验的朋友指出不足的地方 一.使用maven管理jar. <dependency> <groupId>org ...
- spring mvc 返回json的配置
转载自:http://my.oschina.net/haopeng/blog/324934 springMVC-servlet.xml 配置 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
随机推荐
- 微软收购Xamarin,你怎么看?
今天的最大新闻就是微软收购热门初创企业Xamarin,从网上的反馈大部分都是积极的,也有担心微软在把Xamarin移动开发技术整合进VS的同时,还很有可能废掉MONO的GUI客户端能力只保留.net ...
- Apache2.4卡住无法访问的解决……
早两个星期,搭建了一个项目管理平台--<如何安装一个优秀的BUG管理平台--真的是手把手教学!>.以前都是用apache2.2的,这次换了apache2.4.安装起来是没有问题的,结果运行 ...
- 在开发中到底要不要用var?
var是.net的一个语法糖,在Resharper中推荐都使用这个关键字,平常我也是经常用:但是在跟其他程序员推广使用时,他的一些考虑引发了我的深思,到底该不该使用这个关键字呢? 我使用的理由 我使用 ...
- (实例篇)php 使用redis锁限制并发访问类示例
1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功. 例如换领优惠券,如果用户同一时间并发提交换领码,在没有加锁限制 ...
- 使用python实现短信PDU编码
前几天入手一个3G模块,便倒腾了一下.需要发送中英文混合短信,所以采用PDU模式(不了解google ^_^). 最大问题当然就是拼接PDU编码(python这么强大,说不定有模块),果不其然找到一个 ...
- Windows下PowerShell监控Keepalived
一.背景 某数据库服务器为CentOS,想要监控Keepalived的VIP是否有问题,通过邮件进行报警,但这台机器不能上外网,现在只能在Windows下通过PowerShell来完成发邮件预警. 二 ...
- 【完全开源】微信客户端.NET版
目录 说明 功能 原理步骤 一些参考 说明 前两天比较闲,研究了一下web版微信.因为之前看过一篇博客讲微信web协议的,后来尝试分析了一下,半途中发现其实没什么意义,但又不想半途而废,所以最后做出了 ...
- MVC5 网站开发之八 栏目功能 添加、修改和删除
本次实现栏目的浏览.添加.修改和删除. 栏目一共有三种类型. 常规栏目-可以添加子栏目,也可以添加内容模型.当不选择内容模型时,不能添加内容. 单页栏目-栏目只有一个页面,可以设置视图. 链接栏目-栏 ...
- React.render和reactDom.render的区别
刚开始学习react.js.发现网上的资料,有些是写着react.render,有些写着reactDom.render.觉得很奇怪就查阅了一下资料.解释如下: 这个是react最新版api,也就是0. ...
- 【NLP】基于自然语言处理角度谈谈CRF(二)
基于自然语言处理角度谈谈CRF 作者:白宁超 2016年8月2日21:25:35 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...