`

SprignMVC——返回JSON与Ajax支持

 
阅读更多

为了便于接收和处理Ajax请求,SpringMVC提供了JSON响应的支持,可以很方便地将数据自动转换成JSON格式的字符串给客户端JavaScript返回。

在Spring MVC中,与JSON响应相关的注解为@ResponseBody

 

@ResponseBody应用

@ResponseBody注解主要用于Controller组件的处理方法前,具体使用方法如下:

1,引入jar包

jackson-annotations-2.4.1.jar

jackson-core-2.4.1.jar

jackson-databind-2.4.1.jar

 

2,在Spring配置文件中定义<mvc:annotation-driver/>,开启对@ResponseBody的支持

 

3,在Controller处理方法前定义@ResponseBody注解

 

下面看看@ResponseBody应用案例

1)返回单个值

2)返回多个值

3)返回对象

4)返回集合

5)返回对象集合

/**
 *	演示Spring对异步请求的处理,
 *	如何将数据做成json输出给客户端。
 */
@Controller
@RequestMapping("/test")
public class JsonController {
	/**
	 * 使用@ResponseBody注解声明该方法处理的是异步请求,
	 * Spring会自动的将返回值做成json输出给客户端。
	 */
	@RequestMapping("/test1.do")
	@ResponseBody
	public boolean test1() {
		//如果返回的是基本类型的数据,
		//Spring会直接将值输出给客户端。
		//即true
		return true;
	}
	
	/**
	 * 将Map做成json输出
	 */
	@RequestMapping("/test2.do")
	@ResponseBody
	public Map<String, Object> test2() {
		Map<String,Object> map = 
			new HashMap<String, Object>();
		map.put("success", true);
		map.put("message", "操作成功.");
		//{"success":true,"message":"操作成功."}
		return map;
	}
	
	/**
	 * 将集合做成json输出
	 */
	@RequestMapping("/test3.do")
	@ResponseBody
	public List<Object> test3() {
		List<Object> list = new ArrayList<Object>();
		list.add("Tarena");
		list.add("JSD1407");
		//["Tarena","JSD1407"]
		return list;
	}
	
	/**
	 * 将实体对象做成json输出
	 */
	@RequestMapping("/test4.do")
	@ResponseBody
	public Emp test4() {
		Emp e = new Emp();
		e.setEmpno(1);
		e.setEname("zs");
		e.setJob("营业员");
		e.setSal(3000.0);
		//{"empno":1,"ename":"zs","job":"营业员"...}
		return e;
	}
	
	/**
	 * 将一组对象做成json输出
	 */
	@RequestMapping("/test5.do")
	@ResponseBody
	public List<Emp> test5() {
		List<Emp> list = new ArrayList<Emp>();
		Emp e = new Emp();
		e.setEmpno(1);
		e.setEname("zs");
		e.setJob("营业员");
		e.setSal(3000.0);
		list.add(e);
		Emp e2 = new Emp();
		e2.setEmpno(2);
		e2.setEname("ls");
		e2.setJob("经理");
		e2.setSal(5000.0);
		list.add(e2);
		//[{"empno":1,"ename":"zs","job":"营业员"...},
		//{"empno":2,"ename":"ls","job":"经理"...}]
		return list;
	}
}

 

jsp页面引入JQuery插件,就可以发送Ajax请求了。

 

            	$.post(
            		"searchEmp.do",
            		{"empNo":emp_no},
            		function(data) {
            			if(data=="") {
            				//没有查询到员工
            				$("#emp_msg").text("不存在此员工.").addClass("error_msg");
            			} else {
            				//查询到了员工
            				$("#emp_msg").text("员工有效.").removeClass("error_msg");
            				$("#emp_id").val(data.account_id);
            			}
            		}
            	);
 

 

Controller代码

 

@RequestMapping("/searchEmp.do")
	@ResponseBody
	public Account searchEmp(String empNo) {
		return empDao.findByEmpNo(empNo);
	}
 

 

分享到:
评论

相关推荐

    安卓Android源码——解析json_dome.zip

    通过“安卓Android源码——解析json_dome.zip”的学习,开发者可以更好地掌握JSON解析技术,从而在Android应用中高效地处理服务器返回的数据。结合实践,不断熟悉和熟练这些方法,将有助于提升你的Android开发技能。

    geojson——全国json(中国、省份、区县).rar

    1. 解压并加载GeoJSON文件:首先,你需要将"geojson——全国json(中国、省份、区县).rar"解压缩,然后通过Ajax或fetch等方法获取JSON文件内容。 2. 配置ECharts:在ECharts的配置项中,设置`geo`或`map`系列的`...

    安卓Andriod源码——解析json_dome.zip

    这个“安卓Andriod源码——解析json_dome.zip”压缩包很可能包含了一些示例代码,教你如何在Android平台上解析JSON数据。让我们深入探讨一下Android中解析JSON的相关知识点。 首先,理解JSON的结构至关重要。JSON是...

    AjaxJson 实例 AjaxJson

    AjaxJson 是一种在 Web 应用程序中实现异步数据交换的技术,它结合了 AJAX(Asynchronous JavaScript and XML)和 JSON(JavaScript Object Notation)的优势,使得网页可以在不刷新整个页面的情况下与服务器进行...

    ajax+json实例

    在这个例子中,服务器端通过`JsonResult`返回JSON格式的用户信息,客户端通过AJAX请求获取这些信息并解析显示。 **五、总结** AJAX+JSON在.NET环境中的应用大大提高了Web应用程序的交互性和效率,减少了不必要的...

    一个简单的JSON+AJAX

    在Web开发中,JSON与AJAX(Asynchronous JavaScript and XML)常常结合使用,实现网页的异步更新,提升用户体验。 AJAX允许Web应用程序在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。这种...

    Json+ajax简单实例

    它基于JavaScript语法,但被设计为独立的语言,因此任何支持JSON的编程语言都可以方便地处理JSON数据。在前端开发中,JSON通常用于从服务器获取或发送数据,例如用户信息、文章列表等。 AJAX,即异步JavaScript和...

    jQuery中ajax请求后台返回json数据并渲染HTML的方法

    3. 在前端处理返回的JSON数据:在$.ajax()方法的success回调函数中,返回的数据会被处理。这里使用了eval()函数来转换字符串形式的JSON数据为JavaScript对象。然而,在实际开发中,出于安全考虑,不建议使用eval()...

    struts2结合JSON的Ajax支持

    Struts2提供了对JSON(JavaScript Object Notation)的支持,使得Ajax集成变得更加方便。 JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它通常用于前后端之间的数据传递,特别是...

    json.rar_Highstock json_JSON_ajax json_json Ajax Java

    在"json.rar_Highstock json_JSON_ajax json_json Ajax Java"这个主题中,我们主要探讨的是JSON与Highstock、AJAX以及Java的结合应用。Highstock是Highcharts的一个扩展,专门用于绘制时间序列数据的股票或一般金融...

    struts2+json+ajax+jquery

    当与JSON结合时,我们通常会使用`dataType: 'json'`设置来告诉jQuery期待服务器返回JSON格式的数据。收到数据后,可以使用`$.parseJSON()`或jQuery自动解析功能将JSON字符串转换为JavaScript对象,然后在页面上进行...

    Ajax中使用JSON传输数据

    总的来说,Ajax结合JSON提供了一种高效且易于处理的客户端与服务器之间的数据交互方式。通过`json.js`和`json.jar`这样的工具,我们可以方便地在JavaScript和Java环境中进行JSON的序列化和反序列化操作,从而实现...

    json系列文章——json的使用

    这篇“json系列文章——json的使用”将深入探讨JSON的基本概念、语法以及在实际开发中的应用。 1. JSON的基本结构 JSON由键值对组成,以大括号 `{}` 包裹。键用双引号 `"key"` 指定,值可以是字符串、数字、布尔值...

    PHP与AJAX返回json数据调用.zip

    PHP与AJAX返回json数据调用.zip

    安卓Andriod源码——使用JSON进行网络数据交换(服务端、客户端)的实现.zip

    当与服务端进行JSON数据交换时,客户端会将数据序列化为JSON格式发送到服务器,并接收服务器返回的JSON数据进行反序列化。Android SDK内置了org.json库,可以方便地进行JSON对象的创建、解析和操作。例如,创建一个...

    基于JSON的AJAX请求案例

    总结起来,这个案例展示了如何利用AJAX与本地服务器进行交互,获取和提交JSON数据。通过创建XMLHttpRequest对象、设置请求参数和处理响应,以及在服务器端处理请求,我们可以实现在客户端和服务器之间的无刷新数据...

    处理ajax返回带有换行的json数据

    在处理Ajax返回的JSON(JavaScript Object Notation)数据时,可能会遇到一些问题,尤其是当JSON数据中包含换行符时。本文将深入探讨这个问题,以及如何正确地处理这种情况。 首先,JSON是一种轻量级的数据交换格式...

    JSON+AJAX,JSON,AJAX,JAVA ,教程,手册,入门,文档,json.pdf

    JSON与AJAX在Web开发中的结合是常见的实践。当需要使用AJAX向服务器发送请求时,JSON常作为数据交换格式,因为它解析速度快,数据体积小,且易于人类阅读。JSON格式的数据可以直接被JavaScript对象解析,简化了数据...

    AngularJS学习笔记——通过Ajax获取JSON数据T

    通过Ajax获取JSON数据以我之前写的与用户交互的动态清单列表为例,现在把模型中的数据单独写成一个JSON文件,再通过发起Ajax请求的方式获取JSON数据。这样,清单列表中的数据项就都是通过JSON数据来获取的了。

Global site tag (gtag.js) - Google Analytics