1、导入jar包

jack-core-asl-1.9.11.jar

jack-mapper-asl-1.9.11.jar

2、配置springmvc-servlet.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <context:component-scan base-package="com.wh"></context:component-scan> <mvc:annotation-driven ></mvc:annotation-driven> <!-- 配置解析JSON类型 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
</list>
</property>
</bean> </beans>

3、编写javascript的ajax和后台springmvc的控制器

handler.java

package com.wh.handler;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @Controller
public class TestResponseBody {
/**
* 返回一个字符串的json格式
*
* produces="text/html;charset=UTF-8"
* 声明返回的类型
*/
@RequestMapping(value="/dealAjax.action",produces="text/html;charset=UTF-8")
public @ResponseBody String dealAjax(){
return "成功";
}
/*
<script type="text/javascript" src="${pageContext.request.contextPath}/bootstrap/js/jquery.js"></script>
<script>
$(function() {
$('button').click(function() {
$.ajax({
"url" : "dealAjax.action",
"type" : "post"
"data":{"username":"jack"}
}).done(function(result) {
alert(result);
}).fail(function(e) {
alert(e);
});
});
});
</script>
*/ /**
* 返回一个对象的json格式
*
* 传对象时,不能指定为produces="text/html;charset=UTF-8"
*/
@RequestMapping(value="/dealAjax2.action")
public @ResponseBody User dealAjax2(){
User u=new User("张三",20,"男");
return u;
}
/*
<script>
$(function() {
$('button').click(function() {
$.ajax({
"url" : "${pageContext.request.contextPath}/dealAjax2.action",
"type" : "post",
//注意:这里不能加下面这行,否则数据会传不到后台
// "contentType": "application/json;charset=utf-8",
"data":{"username":"jack"}
}).done(function(data) {
console.log("success...");
console.log(data);
alert(data.uname+"----"+data.uage+"----"+data.usex);
//alert(data.uname);
}).fail(function(e) {
console.log("error...");
console.log(e.responseText);
//alert(e);
});
});
});
</script>
*/ /**
* 返回一个list集合的json格式
*
* 传对象时,不能指定为produces="text/html;charset=UTF-8"
*/
@RequestMapping(value="/dealAjax3.action")
public @ResponseBody List<User> dealAjax3(){
List<User> list=new ArrayList<User>();
User u1=new User("张三",20,"男");
User u2=new User("张三",20,"男");
User u3=new User("张三",20,"男");
list.add(u1);
list.add(u2);
list.add(u3);
return list;
}
/*
<script>
$(function() {
$('button').click(function() {
$.ajax({
"url" : "${pageContext.request.contextPath}/dealAjax3.action",
"type" : "post",
//注意:这里不能加下面这行,否则数据会传不到后台
//"contentType": "application/json;charset=utf-8",
"data":{"username":"jack"}
}).done(function(data) {
$.each(data,function(i,item){
console.log("i="+i);
console.log("item"+item);
console.log(item.uname+"---"+item.uage);
});
}).fail(function(e) {
console.log("error...");
console.log(e.responseText);
});
});
});
</script>
*/ /**
* 返回一个Map集合的json格式,且map中的key值写死了
*/
@RequestMapping(value="/dealAjax4.action")
@ResponseBody //此注解不能省略 否则ajax无法接受返回值
public Map<String,User> dealAjax4(){
Map<String,User> map=new HashMap<String,User>();
map.put("map1",new User("张三",20,"男"));
return map;
}
/*
* <script>
$(function() {
$('button').click(function() {
$.ajax({
"url" : "${pageContext.request.contextPath}/dealAjax4.action",
"type" : "post",
"dataType":"json",
"data":{"username":"jack"}
}).done(function(data) {
alert(data.map1.uname+"-----"+data.map1.uage);
console.log(data.map1+data.map1.uname+"-----"+data.map1.uage);
}).fail(function(e) {
console.log("error...");
console.log(e.responseText);
});
});
});
</script>
*/ /**
* 返回多个Map集合的json格式
* 并在前台遍历输出
* for ( var key in data) {
* console.log(key+"---"+data[key].uname+"---"+data[key].uage);
* }
*/
@RequestMapping(value="/dealAjax5.action") public @ResponseBody Map<String,User> dealAjax5(){
Map<String,User> map=new HashMap<String,User>();
map.put("map1",new User("张三",20,"男"));
map.put("map2",new User("李四",21,"男"));
map.put("map3",new User("王武",22,"男"));
return map;
}
/*
<script>
$(function() {
$('button').click(function() {
$.ajax({
"url" : "${pageContext.request.contextPath}/dealAjax5.action",
"type" : "post",
"dataType":"json",
"data":{"username":"jack"}
}).done(function(data) {
for ( var key in data) {
console.log(key+"---"+data[key].uname+"---"+data[key].uage);
}
}).fail(function(e) {
console.log("error...");
console.log(e.responseText);
});
});
});
</script>
*/
}

遍历map集合的参考地址:http://blog.163.com/xueling1231989@126/blog/static/102640807201461744258436/

数据传递-------@ResponseBody的更多相关文章

  1. postman-接口间数据传递

    接口间数据传递 在我们做接口测试过程中会经常碰到使用上一个接口返回数据的情况,jmeter中可通过正则表达式提取,postman中如何提取呢?我们来看实例,这里使用的同一个接口来演示. ​ 我们提取出 ...

  2. EXTJS中grid的数据特殊显示,不同窗口的数据传递

    //EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...

  3. Activity系列讲解---数据传递

    在Android中,不同的Activity实例可能运行在一个进程中,也可能运行在不同的进程中.因此需要一种特别的机制帮助我们在Activity之间传递消息.Android中通过Intent对象来表示一 ...

  4. vue2.0 组件之间的数据传递

    组件间的数据传递// 父组件<template><div class="order"><dialog-addpro v-on:closedialog= ...

  5. ASP.NET MVC3中Controller与View之间的数据传递总结

    一.  Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...

  6. ASP.NET MVC3中Controller与View之间的数据传递

    在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.  Controller向Vie ...

  7. 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

    通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...

  8. MVC数据传递

    一.数据传递 1.ViewData[]: 用法:action中:ViewData["key"]="aaa";,V层接收ViewData["key&qu ...

  9. WinForm登陆:窗体间的数据传递

    1. 登陆逻辑 FrmMain 为主窗体(启动窗体) FrmLogin 为登陆窗体 在“主窗体”中使用ShowDialog()方法显示“登陆窗体”,并通过“登陆窗体”的DialogResult告知“主 ...

随机推荐

  1. 2017 CCPC 杭州 HDU6273J 区间修改(线段树&差分数组)

    http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf 解析 线段树区间延迟更新 或 差分数组 两个数   统计2和3的最少的 ...

  2. 网易2018校招 合唱 DP

      时间限制:2秒 空间限制:131072K 小Q和牛博士合唱一首歌曲,这首歌曲由n个音调组成,每个音调由一个正整数表示.对于每个音调要么由小Q演唱要么由牛博士演唱,对于一系列音调演唱的难度等于所有相 ...

  3. [bzoj2738]矩阵乘法_整体二分_树状数组

    矩阵乘法 bzoj-2738 题目大意:给定一个$n*n$的矩阵.每次给定一个矩阵求矩阵$k$小值. 注释:$1\le n\le 500$,$1\le q\le 6\cdot 10^4$. 想法: 新 ...

  4. Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)

    原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...

  5. #!/usr/bin/env 脚本解释程序的作用

    the Zimbu programming language http://www.zimbu.org/getting-started -------------------------------- ...

  6. 008 frame relay

    Router>en Router#config t Enter configuration commands, one per line.  End with CNTL/Z. Router(co ...

  7. mysql查看所有存储过程,函数,视图,触发器,表

    查询数据库中的存储过程和函数 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE' ...

  8. Codeforces 216D Spider&#39;s Web 树状数组+模拟

    题目链接:http://codeforces.com/problemset/problem/216/D 题意: 对于一个梯形区域,假设梯形左边的点数!=梯形右边的点数,那么这个梯形为红色.否则为绿色, ...

  9. Python 批量修改root密码

    #_*_coding:utf8_*_ from multiprocessing import Process, Pool import paramiko import sys,os host_list ...

  10. Android官方api的下载

    不少开发者,都需要api来进行参考,可是目前Android开发来说默认是没有下载的, 而且sdk中有时候部分开发者也很疑惑怎么没有找到像document或者doc之类的文档进行下载,其实我们只要在把s ...