java web请求字符串处理_java web工作常用技能篇(三)-封装复杂请求对象2
前言:在各類網站論壇上,沒有找到與工作比較貼切的技能,所以特此寫一些對剛步入工作或者工作中沒有重視的技能與問題,各位大牛請及時關閉文章.
ps1:文中所有標點都是英文的,看官請不要在意.為了便于平時敲代碼,所以中文輸入法也默認了英文標點(防止各類因為標點引起的低級錯誤).純屬個人原創見解,若不正確,請各位批評指正.
ps2:讀懂本文,你可能需要具備對JSON格式對象的理解,以及SpringMVC中Controller的作用
這邊我統一以SpringMVC框架為例進行講解參數封裝方法,我只介紹最常用的幾種請求方式(因為其他請求方式不經常使用,所以不作為本文重點).如果文中介紹到的內容有不明白的,敬請留言評論.
java
大多數情況,我們都是通過ajax方式進行提交復雜對象進行插入或更新操作,下面我們舉個例子接著上一篇繼續介紹封裝復雜參數的其他方式我們的需求是 : 在一個請求中將某一個學生信息,該學生的語數外三門成績以及該學生的老師信息同時傳入后臺.
學生類如下:(學生包含多個成績)
學生類
成績類如下:
成績類
教師類如下:
教師類
接受請求參數的Controller方法如下:
Controller方法
ajax方式封裝復雜對象(一)
在測試頁面中直接編寫一個ajax請求,將請求參數封裝成我們需要的格式,如下:
ajax封裝復雜參數
我們測試效果如下:
斷點查看效果
總結:ajax方式封裝參數使用Json數據格式,List使用[obj1,obj2],任意對象使用{key1:value2,key2:value2},對象可以嵌套對象
需要使用JSON.stringify()方法將json對象轉換成json字符串
ajax的contentType屬性必須是'application/json;charset=utf-8'
在接收參數前面需要加上SpringMVC的@RequestBody注解
ajax方式封裝復雜對象(二)
如果我們并沒有一個合適的對象來接受我們的參數時,我們可能需要封裝到Map中,那么我們需要修改接收請求的Controller方法,如下圖:
參數封裝成一個大Map
前臺ajax參數封裝格式一致,無需變更,如下圖:
ajax參數封裝到map中
我們測試效果如下(正確封裝了一個復雜的Map對象):
斷點查看map中參數
總結:(其實Map與我們自定義的類是一樣的道理)ajax方式封裝參數使用Json數據格式,List使用[obj1,obj2],任意對象使用{key1:value2,key2:value2},對象可以嵌套對象
需要使用JSON.stringify()方法將json對象轉換成json字符串
ajax的contentType屬性必須是'application/json;charset=utf-8'
在接收參數前面需要加上SpringMVC的@RequestBody注解
與封裝到自定義類的區別:Map取值通過我們約定好的key來取,而類通過自己的屬性名來取
ajax方式封裝復雜對象(三)
同樣,如果我們并沒有一個合適的對象來接受我們的參數時,我們也不想使用Map時,那么我們還可以使用字符串來接受復雜的JSON字符串,那么我們需要修改接收請求的Controller方法,如下圖:
定義字符串接受json對象字符串
(注意:上圖中,我們還用到了Gson這個對象,它是用來處理json字符串與具體的java對象互相轉換問題的)
同時我們需要修改jsp中發送請求的ajax方法,如下圖:
ajax請求參數封裝方法三
總結:ajax方式封裝參數使用Json數據格式,List使用[obj1,obj2],任意對象使用{key1:value2,key2:value2},對象可以嵌套對象
需要使用JSON.stringify()方法將json對象轉換成json字符串,并將該負責的json字符串作為value形成新的json格式的參數對象,如上圖中{stuJsonStr:負責json字符串}
Java后臺中,需要將接收到的json字符串使用Gson(或者JSONObject等)第三方類轉換成我們需要的具體對象.
結尾ps:
小編花了不少時間編寫例子,為了突出代碼中的關鍵字,因此采用截圖方式,希望各位同學看后能夠利用在自己的項目中,或者自己參考編寫文中的例子深刻理解一下.若文中有不能理解的地方請留言評論.
總結
以上是生活随笔為你收集整理的java web请求字符串处理_java web工作常用技能篇(三)-封装复杂请求对象2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全球首款!工业设计大师操刀的骁龙8旗舰来
- 下一篇: 东北矿泉水一晃秒变沙冰 这就是北方冬天的