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. 【BZOJ3110】K大数查询(权值线段树套线段树+标记永久化,整体二分)

    题意:有N个位置,M个操作.操作有两种,每次操作 如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c 如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是 ...

  2. android中webview的实现

    设置从当前页面打开链接,而不是跳转到系统默认浏览器打开: webview.setWebViewClient(new WebViewClient(){ @Override public boolean ...

  3. HDU 5876 补图 单源 最短路

    ---恢复内容开始--- Sparse Graph Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (J ...

  4. Uva - 11181 Probability|Given (条件概率)

    设事件B为一共有r个人买了东西,设事件Ai为第i个人买了东西. 那么这个题目实际上就是求P(Ai|B),而P(Ai|B)=P(AiB)/P(B),其中P(AiB)表示事件Ai与事件B同时发生的概率,同 ...

  5. dtrace.org

    http://dtrace.org/blogs/rm/2016/09/15/turtles-on-the-wire-understanding-how-the-os-uses-the-modern-n ...

  6. 条款十: 如果写了operator new就要同时写operator delete

    为什么有必要写自己的operator new和operator delete? 答案通常是:为了效率.缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也 ...

  7. Ubuntu 16.04 LTS 搭建LAMP

    1. LAMP是一系列自由和开源软件的集合,包含了Linux.Web服务器(Apache).数据库服务器(MySQL)和PHP(脚本语言). Apache2 Web 服务器的安装 sudo apt i ...

  8. MySQL 高可用架构在业务层面的分析研究

    )读多写少 虚线表示跨机房部署,比方电子商务系统.一个Master既有读也有些写.对读数据一致性须要比較重要的.读要放在Master上面. M(R)仅仅是一个备库.仅仅有M(WR)挂了之后,才会切换到 ...

  9. 解决Vue打包后背景图片路径错误问题

    1.原因解析 当用vue-cli自动构建项目后,有两种运行方法,分别是: npm run dev : 提供一个开发的环境,自动热更新,资源使用绝对路径,所以可以正常看到背景图片. npm run bu ...

  10. 再探gdb经常使用命令

     前面已经有了一篇对gdb经常使用命令的总结.见 http://blog.csdn.net/u011848617/article/details/12838875 这里对眼下学过的gdb命令进行了 ...