javaEE Springmvc,Json传输,@RequestBody(接收),@ResponseBody(发送)

Springmvc的jar包下载:https://pan.baidu.com/s/1Uu5R96z4LwwtydGq4B60Xg  密码:8c3n

需要额外导入Json的Jar包:jackson-annotations、jackson-core、jackson-databind

ItemController.java(Controller后端控制器,接收Json字符串,发送Json):

package com.xxx.springmvc.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.xxx.springmvc.pojo.Items;
import com.xxx.springmvc.service.ItemService;

//商品管理
@Controller
@RequestMapping(value = "/item")
public class ItemController {
	
	@Autowired
	private ItemService itemService;
	
	
	//json数据交互
	@RequestMapping(value = "/json.action")
	//@ResponseBody表示自动将返回的对象序列化成Json字符串。
	//@RequestBody表示自动将前端传的Json字符串转成对象。
	public @ResponseBody Items json(@RequestBody Items items){
		
		System.out.println(items);
		
		return items;  //@ResponseBody表示自动将返回的对象序列化成Json字符串返回。 并不会走视图解析器,不会返回页面
	}
	
}

demo.jsp(前端页面,Ajax发送Json字符串):

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Demo</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
$(function(){
	//params是Json字符串,并不是Json对象。
	var params = '{"id": 1,"name": "测试商品","price": 99.9,"detail": "测试商品描述","pic": "123456.jpg"}';

 	/* $.post("${pageContext.request.contextPath }/item/json.action",params,function(data){  //这种方式发送的参数params是Json格式表示的键值对参数,并不是Json字符串
		alert("aaa:"+data.name);
 	},"json"); */
	$.ajax({
		url : "${pageContext.request.contextPath }/item/json.action",
		data : params, //Json字符串;并不是Json对象表示的键值对参数。
		contentType : "application/json;charset=UTF-8",//指定发送数据的格式为Json字符串。默认是Json格式表示的键值对参数。
		type : "post",
		dataType : "json", //回调函数中,参数data的类型(自动将Json字符串反序列化成Json对象)。
		success : function(data){
			alert(data.name);
		}
		
	});
});
</script>
</head>
<body> 

</body>
</html>

猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/82821578