数据传递-------@ResponseBody
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的更多相关文章
- postman-接口间数据传递
接口间数据传递 在我们做接口测试过程中会经常碰到使用上一个接口返回数据的情况,jmeter中可通过正则表达式提取,postman中如何提取呢?我们来看实例,这里使用的同一个接口来演示. 我们提取出 ...
- EXTJS中grid的数据特殊显示,不同窗口的数据传递
//EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...
- Activity系列讲解---数据传递
在Android中,不同的Activity实例可能运行在一个进程中,也可能运行在不同的进程中.因此需要一种特别的机制帮助我们在Activity之间传递消息.Android中通过Intent对象来表示一 ...
- vue2.0 组件之间的数据传递
组件间的数据传递// 父组件<template><div class="order"><dialog-addpro v-on:closedialog= ...
- ASP.NET MVC3中Controller与View之间的数据传递总结
一. Controller向View传递数据 1. 使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...
- ASP.NET MVC3中Controller与View之间的数据传递
在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一. Controller向Vie ...
- 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递
通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...
- MVC数据传递
一.数据传递 1.ViewData[]: 用法:action中:ViewData["key"]="aaa";,V层接收ViewData["key&qu ...
- WinForm登陆:窗体间的数据传递
1. 登陆逻辑 FrmMain 为主窗体(启动窗体) FrmLogin 为登陆窗体 在“主窗体”中使用ShowDialog()方法显示“登陆窗体”,并通过“登陆窗体”的DialogResult告知“主 ...
随机推荐
- 从零开始写STL-容器-双端队列
从零开始写STL-容器-双端队列 什么是双端队列?在介绍vector源码,我们发现在vector前端插入元素往往会引起大量元素的重新分配,双端队列(deque)就是为了解决这一问题,双端队列中在首端和 ...
- Oracle 设置用户密码永不过期
--1.查看用户的proifle,一般是default select username,profile from dba_users; --2.查看概要文件(default)的密码有效期设置 sele ...
- 配置-XX:+HeapDumpOnOutOfMemoryError 对于OOM错误自动输出dump文件
配置-XX:+HeapDumpOnOutOfMemoryError 对于OOM错误自动输出dump文件 学习了:http://blog.csdn.net/stevendbaguo/article/de ...
- 文本分类——NaiveBayes
前面文章已经介绍了朴素贝叶斯算法的原理,这里基于NavieBayes算法对newsgroup文本进行分类測试. 文中代码參考:http://blog.csdn.net/jiangliqing1234/ ...
- 再探gdb经常使用命令
前面已经有了一篇对gdb经常使用命令的总结.见 http://blog.csdn.net/u011848617/article/details/12838875 这里对眼下学过的gdb命令进行了 ...
- Eclipse插件开发中的选择监听机制(Selection Provider-Listener)
Eclipse插件开发中的选择监听机制(Selection Provider-Listener) 监听机制是eclipse插件开发或rcp应用开发中经常使用的技术,比方点击TableViewer或Tr ...
- Linux下的文件夹创建命令使用实践
[文章摘要] 本文以实际的C源程序为样例,介绍了Linux下的文件夹创建命令(mkdir)的用法.为相关开发工作的开展提供了故意的參考. [关键词] C语言 Linux 文件夹创建 makefi ...
- JavaScript 获得代码行号和脚本文件名
如果你使用的是 V8 引擎,Chrome 和 Node.js 所用的,那么你可以利用 JavaScriptStackTraceApi 来获得行号信息,有两个 API: Error.captureSta ...
- WCC框架设计
一个好的框架,不仅能帮助程序开发节约很多时间,同时也能减少bug的引入.这个框架是在ssy同学的基础上进行了一些改进: 主要在于一下几点(会随着项目开发逐渐更新这篇文章) 1. 应用了反射机制,实现网 ...
- python 【第一篇】初识python
人生苦短,我用python Python是我喜欢的语言,简洁.优美.容易使用.所以我总是很激昂的向朋友宣传Python的好处. python起源 1989年,为了打发圣诞节假期,Guido开始写Pyt ...