javaEE Springmvc,Json傳輸,@RequestBody(接收),@ResponseBody(傳送)
阿新 • • 發佈:2018-12-11
需要額外匯入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>