Vue全家桶+SSR+Koa2全棧開發美團網(已完結)2018年(最全)
1. SpringMVC Json互動
在 Java WEB 中經常用到 Json 資料來進行介面呼叫,傳遞資料,主要是因為 Json 格式的資料容易解析。SpringMVC支援 Json 格式的資料使用註解進行解析或轉為 Json。
2. SpringMVC Json 互動相關注解
@RequestBody :用於讀取 HTTP 請求的內容(字串),通過 SpringMVC 提供的 HttpMessageConverter 介面將讀到的內容轉換為 Json、XML 等格式的資料並繫結到 Controller 方法的引數上。
@ResponseBody :用於將 Controller 的方法返回的物件,通過HttpMessageConverter 介面轉換為指定格式的資料如:Json、XML 等格式,再通過 Response 響應給客戶端。
3. 匯入 Jackson JAR
Jackson 1.X 的需要匯入的 JAR 包是 jackson-core-xxx.jar 和jackson-mapping-xxx.jar;Jackson 2.X 的需要匯入的 JAR 包是 jackson-core-xxx.jar 、 jackson-annotations-xxx.jar 和 jackson-databind-xxx.jar。我們這裡用的是 Jackson 2.X,點選下載。
這裡我們匯入 Jquery ,通過 Ajax 請求進行測試。注意,在 springmc.xml 中配置一下靜態資原始檔,最好這樣,不然以後你的 DispatcherServlet 改變了攔截方式,js 就會被攔截,不能使用。
<!-- 對靜態資源訪問 -->
<mvc:resources location="/js/" mapping="/js/**"/>
1
2
我這裡使用的註解的處理器介面卡是使用 mvc:annotation-driven,如果不是就需要配置才可以使用上述兩個註解,配置有:
<!--註解介面卡 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
1
2
3
4
5
6
7
8
9
4. 請求 Json,返回 Json
在 JSP 中 匯入 Jquery 並編寫程式碼。
<script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-3.3.1.js"></script>
1
<script type="text/javascript">
//請求json 響應json
function requestJson(){
$.ajax({
type:"post",
url:"${pageContext.request.contextPath }/json/requestJson.action",
contentType:"application/json;charset=utf-8",
data:'{"name":"商品名稱","price":99}',
success:function(data){
console.log(data);
}
});
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Controller 中編寫方法:
@RequestMapping("requestJson")
public @ResponseBody Items requestJson(@RequestBody Items items) {
System.out.println(items);
return items;
}
1
2
3
4
5
6
5. 請求 key/value,返回 Json
在 JSP 中 匯入 Jquery 並編寫程式碼。
<script type="text/javascript">
//請求key/value 響應json
function responseJson(){
$.ajax({
type:"post",
url:"${pageContext.request.contextPath }/json/responseJson.action",
data:{
"name":"商品名稱",
"price":99
},
success:function(data){
console.log(data);
}
});
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Controller 中編寫方法:
@RequestMapping("responseJson")
public @ResponseBody Items responseJson(Items items) {
return items;
}
1
2
3
4
5
6. 統一測試
JSP 新增程式碼:
<body>
<button onclick="requestJson()">requestJson</button>
<hr>
<button onclick="responseJson()">responseJson</button>
</body>
1
2
3
4
5
J點選相應的按鈕,按 F12 在控制檯列印如下內容:
---------------------
作者:lytao123
來源:CSDN
原文:https://blog.csdn.net/qq_24598601/article/details/85028428
版權宣告:本文為博主原創文章,轉載請附上博文連結!