SpringMVC教程之json交互使用
Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。本文是本站小編搜索整理的關於SpringMVC教程之json交互使用詳解,供參考學習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!
json數據交互
1.1 @RequestBody
作用:@RequestBody註解用於讀取http請求的內容(字符串),通過springmvc提供的HttpMessageConverter接口將讀到的內容轉換為json、xml等格式的`數據並綁定到controller方法的參數上。
本例子應用:@RequestBody註解實現接收http請求的json數據,將json數據轉換為Java對象
1.2 @ResponseBody
作用:該註解用於將Controller的方法返回的對象,通過HttpMessageConverter接口轉換為指定格式的數據如:json,xml等,通過Response響應給客户端
本例子應用:@ResponseBody註解實現將controller方法返回對象轉換為json響應給客户端
1.3 請求json,響應json實現:
1.3.1 環境準備
Springmvc默認用MappingJacksonHttpMessageConverter對json數據進行轉換,需要加入jackson的包,如下:
1.3.2 配置json轉換器
在註解適配器中加入messageConverters
<!--註解適配器 -->
<bean class="estMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="ingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
注意:如果使用<mvc:annotation-driven /> 則不用定義上邊的內容。
1.3.3 controller編寫
// 商品修改提交json信息,響應json信息
@RequestMapping("/editItemSubmit_RequestJson")
public @ResponseBody Items editItemSubmit_RequestJson(@RequestBody Items items) throws Exception {
tln(items);
//Item(items);
return items;
}
1.3.4 頁面js方法編寫:
引入 js:
<script type="text/JavaScript"
src="${extPath }/js/"></script>
//請求json響應json
function request_json(){
$({
type:"post",
url:"${extPath }/item/editItemSubmit_on",
contentType:"application/json;charset=utf-8",
data:'{"name":"測試商品","price":99.9}',
success:function(data){
alert(data);
}
});
}
1.4 Form提交,響應json實現:
採用form提交是最常用的作法,通常有post和get兩種方法,響應json數據是為了方便客户端處理,實現如下:
1.4.1 環境準備
同第一個例子
1.4.2 controller編寫
// 商品修改提交,提交普通form表單數據,響應json
@RequestMapping("/editItemSubmit_ResponseJson")
public @ResponseBody Items editItemSubmit_ResponseJson(Items items) throws Exception {
tln(items);
//Item(items);
return items;
}
1.4.3 頁面js方法編寫:
function formsubmit(){
var user = " name=測試商品&price=99.9";
alert(user);
$(
{
type:'post',//這裏改為get也可以正常執行
url:'${extPath}/item/ editItemSubmit_on',
//ContentType沒指定將默認為:application/x-www-form-urlencoded
data:user,
success:function(data){
alert();
}
}
)
}
從上邊的js代碼看出,已去掉ContentType的定義,ContentType默認為:application/x-www-form-urlencoded格式。
1.4.4 jquery的form插件插件
針對上邊第二種方法,可以使用jquery的form插件提交form表單,實現ajax提交form表單,如下:
引用js:
<script type="text/javascript"
src="${extPath }/js/"></script>
<script type="text/javascript"
src="${extPath }/js/"></script>
js方法如下:
function response_json() {
//form對象
var formObj = $("#itemForm");
//執行ajax提交
Submit({
dataType : "json",//設置預期服務端返回json
success : function(responseText) {
alert(responseText);
}
});
}
1.4.5 小結
實際開發中常用第二種方法,請求key/value數據,響應json結果,方便客户端對結果進行解析。
-
java環境變量設置path
導語:java的環境變量是怎麼設置的呢?以下小編為大家介紹java環境變量設置path文章,僅供參考!java環境變量設置path環境變量是一個具有特定名字的對象,它包含了一個或者多個應用程序所將使用到的信息。例如path,當要求系統運行一個程序而沒有告訴它程序所在的完整路...
-
java中length和length()的區別
泉水,奮鬥之路越曲折,心靈越純潔。以下是小編為大家搜索整理了java中length和length()的區別,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!length是屬性,一般集合類對象擁有的屬性,取得集合的大小。例如:數組th就是取得數組的長度。length()是...
-
關於java如何配置MyEclipse Maven環境具體方法
雖然我的大部分項目已經遷到Idea上去了,但是在寫部分小的測試程序的時候還是習慣性的會點開MyEclipse。之前使用第三方庫的時候我會習慣的下載jar包,然後buildpath導入,但是在idea中貌似通過配置maven依賴更方便,於是我在MyEclipse中也想使用來導入依賴,在嘗試的過...
-
Java網絡基礎和Socket通信基礎
導語:Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裏難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。下面我們來看看Java網絡基礎和Socket通信基礎,希望對大家有所幫助。一、網絡基礎1、InetAddressInetAddres...
相關文章
- Time To Stop Worrying About Invasive Species美文欣賞
- Unit six Opening and Closing Ceremonies口譯材料
- 我的英語演講稿living at present is my top concern
- JavaScript instanceof 的使用方法有哪些
- java與javascript之間json格式數據互轉詳解
- Linux Mint Cinnamon下使用vino-server配置桌面共享的方法
- JavaScript Scoping Hoisting解析
- 關於JavaScript substring()的使用方法
- Spring is coming on為題目的作文
- JavaScript如何實現JSON.stringify