Spring MVC數據綁定和響應——數據回寫(二)JSON數據的回寫

????????項目中已經導入了Jackson依賴,可以先調用Jackson的JSON轉換的相關方法,將對象或集合轉換成JSON數據,然后通過HttpServletResponse將JSON數據寫入到輸出流中完成回寫,具體步驟如下。

????????1、修改文件DataController.java,在DataController類中新增showDataByJSON()方法,用于將對象轉換成JSON數據并寫入輸出流中完成回寫。

@RequestMapping("showDataByJSON")
public void showDataByJSON(HttpServletResponse response)  {try {	ObjectMapper om = new ObjectMapper();User user = new User();user.setUsername("heima");	user.setPassword("666");String ujson = om.writeValueAsString(user);response.getWriter().print(ujson);} catch (IOException e) {	 e.printStackTrace();	}}

????????2、啟動chapter12項目,在瀏覽器中訪問地址http://localhost:8080/chapter12/showDataByJSON。訪問地址后,執行了showDataByJSON()方法,方法執行后將User對象的數據轉換成JSON格式的數據輸出到請求頁面中了。

一、@ResponseBody注解的使用范圍

????????@ResponseBody注解可以標注在方法和類上,當標注在類上時,表示該類中的所有方法均應用@ResponseBody注解。如果需要當前類中的所有方法均應用@ResponseBody注解,也可以使用@RestController注解。

二、@ResponseBody注解的2個使用要求

??????? 使用@ResponseBody注解,項目至少需要符合2個要求,分別如下所示。

???? 項目中有轉換JSON相關的依賴。
???? 可以配置轉換JSON數據的消息類型轉換器。

??????? 針對上述兩個要求,chapter12項目都已經滿足,項目的pom.xml文件中引入了Jackson相關的依賴,可以用于轉換JSON;Spring MVC的配置文件中配置的<mvc:annotation-driven />元素默認注冊了Java數據轉JSON數據的消息轉換器。

????????接下來通過一個案例演示使用@ResponseBody注解回寫JSON格式的對象數據和集合數據,案例具體實現步驟如下。

1、修改文件DataController.java,在DataController類中新增getUser()方法,用于返回JSON類型的User信息;新增addProducts()方法用于返回JSON類型的Product列表信息。

@RequestMapping("showDataByJSON")public void showDataByJSON(HttpServletResponse response) {try {ObjectMapper om = new ObjectMapper();User user = new User();user.setUsername("heima");user.setPassword("666");String ujson = om.writeValueAsString(user);response.getWriter().print(ujson);} catch (IOException e) {e.printStackTrace();}}

? ? ? ? 2、創建一個商品添加頁面product_add.jsp,在product_add.jsp中創建一個表格,用于顯示用戶信息和添加商品信息。product_add.jsp的部分代碼如下所示。

<script type="text/javascript">// 添加商品function addProducts() {var url="${pageContext.request.contextPath }/addProducts";$.get(url,function (products) {//將處理器返回的商品列表信息添加到表格中for (var i=0;i<products.length;i++) {
$("#products").append("<tr><td>"+products[i].proId+"</td><td>“+products[i].proName+”</td></tr>");	} })	}
</script>

? ? ? ? 3、啟動chapter12項目,在瀏覽器中訪問商品添加頁面product_add.jsp,訪問地址為http://localhost:8080/chapter12/product_add.jsp。頁面加載完,頁面異步將用戶的信息顯示在單元格中,成功回寫了User對象信息對應的JSON數據。

????????4、單擊product_add.jsp頁面顯示效果圖所示的“添加多個商品”按鈕。單擊“添加多個商品”按鈕,程序成功回寫了List對應的JSON數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39359.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39359.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39359.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

verilog 參數用法

參數比較運算 localparam QPLL_FBDIV_IN (QPLL_FBDIV_TOP 16) ? 10b0000100000 : (QPLL_FBDIV_TOP 20) ? 10b0000110000 :(QPLL_FBDIV_TOP 32) ? 10b0001100000 :(QPLL_FBDIV_TOP 40) ? 10b0010000000 :(QPLL_FBDIV_TOP 64) ? 10b0011100000 :(QPLL_FBDIV_TO…

昇思25天學習打卡營第04天 | 數據集 Dataset

昇思25天學習打卡營第04天 | 數據集 Dataset 文章目錄 昇思25天學習打卡營第04天 | 數據集 Dataset數據集加載數據集迭代數據集的變換shufflemapbatch 自定義數據集可隨機訪問數據集對象可迭代數據集生成器 總結打卡 數據集Dataset對原始數據進行封裝、變換&#xff0c;為神經網…

Linux 靜態庫 和 動態庫

在Linux系統上&#xff0c;庫文件用于共享和重用代碼。根據使用方式和鏈接方式的不同&#xff0c;庫文件可以分為靜態庫和動態庫。 靜態庫&#xff08;Static Library&#xff09; 靜態庫是在編譯時被嵌入到最終可執行文件中的庫。靜態庫的擴展名通常是.a。 特點 獨立性&am…

ADOP帶你了解:SFP 光模塊:構建高速網絡的關鍵技術

在數字化時代&#xff0c;企業運營的效率往往取決于數據傳輸的速度。因此&#xff0c;構建一個可靠的網絡基礎架構至關重要。本指南深入探討了小型可插拔&#xff08;SFP&#xff09;光收發器的關鍵作用&#xff0c;這些設備確保了網絡中數據的高效和安全流動。SFP光收發器的設…

【Rust入門教程】hello world程序

文章目錄 前言Hello World程序運行總結 前言 對于學習任何一種新的編程語言&#xff0c;我們都會從編寫一個簡單的Hello World程序開始。這是一個傳統&#xff0c;也是一個開始。在這篇文章中&#xff0c;我們將一起學習如何在Rust中編寫你的第一個程序&#xff1a;Hello Worl…

【C語言內存函數】

目錄 1.memcpy 使用 模擬實現 2.memmove 使用 模擬實現 3.memset 使用 4.memcmp 使用 1.memcpy 使用 void * memcpy ( void * destination, const void * source, size_t num );目的地址 源地址 字節數 destination&#xff1a;指向要復制內…

20240703 每日AI必讀資訊

&#x1f916;爆火Character AI慘遭閹割 美國00后集體“失戀” - Character AI曾是00后最火爆的社交軟件&#xff0c;但用戶發現對話模型變得冷淡&#xff0c;失去趣味。 - 用戶流失嚴重&#xff0c;面臨成本高、競爭激烈的挑戰&#xff0c;甚至遭到挖角。 - 盡管困難重重&a…

淘寶API接口開發系列:淘寶訂單詳情API接口與物流電子面單API接口概述

淘寶訂單詳情API接口與物流電子面單API接口概述 在電子商務領域&#xff0c;API&#xff08;應用程序接口&#xff09;扮演著至關重要的角色&#xff0c;它們使得不同的系統能夠相互通信&#xff0c;實現數據的共享和交換。淘寶作為國內最大的電商平臺之一&#xff0c;其提供的…

C# 多線程造成CPU占用率高

當線程多的時候就會造成CPU內存占用率過高 private void button1_Click(object sender, EventArgs e){Thread TH1, TH2, TH3, TH4, TH5;TH1 new Thread(Thread1){IsBackground true};TH2 new Thread(Thread2){IsBackground true};TH3 new Thread(Thread3){IsBackground t…

最小步數模型——AcWing 1107. 魔板

最小步數模型 定義 最小步數模型通常是指在某種約束條件下&#xff0c;尋找從初始狀態到目標狀態所需的最少操作或移動次數的問題。這類問題廣泛存在于算法、圖論、動態規劃、組合優化等領域。具體來說&#xff0c;它涉及確定一個序列或路徑&#xff0c;使得按照特定規則執行…

jenkins在使用pipeline時,為何沒有方塊形視圖

項目場景&#xff1a; 安裝完Jenkins時后&#xff0c;通過pipeline創建的項目任務。 問題描述 在立即構建后&#xff0c;沒有顯示每個階段的視圖。 原因分析&#xff1a; 原因是&#xff0c;剛安裝的Jenkins&#xff0c;這個視圖不是Jenkins自帶的功能&#xff0c;而必須安裝…

《5小時吃透小red書》讀書筆記之打造爆款筆記原理

1.流量推送邏輯&#xff1a; 一篇筆記發布并審核后&#xff0c;平臺根據內容提取關鍵詞&#xff0c;開始小范圍發布測試&#xff1b;初次先分發到1000個興趣用戶&#xff0c;根據這1000個用戶等反饋決定是否給該筆記更多流量和推薦&#xff1b;考核標準是點擊率、完播率、互動…

高校實訓室:老年實訓室的教學案例

本文以高校老年實訓室為研究對象&#xff0c;通過詳細分析具體的教學案例&#xff0c;探討了老年實訓室在提升學生專業素養和實踐能力方面的重要作用。文中介紹了多個具有代表性的教學案例&#xff0c;包括健康評估、康復護理和心理關懷等方面&#xff0c;闡述了其教學目標、實…

EDA 虛擬機 Synopsys Sentaurus TCAD 2017.09 下載

下載地址&#xff08;制作不易&#xff0c;下載使用需付費&#xff0c;不能接受的請勿下載&#xff09;&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1327I58gvV1usWSqSrG7KXw?pwdo03i 提取碼&#xff1a;o03i

Boss直聘,無良廠商,亂封號

耽誤招工作&#xff0c;瞎吉兒封號 哥們單身 需要女生多的公司 問一下都不行&#xff0c;什么尿性 直接就給你封了 裝什么呢 辣雞boss 倒閉吧趕緊 我是狗子&#xff0c;希望你倒閉&#xff01;

枚舉類示例

package net.cnki.editor.costcenter.pojo.enums;import lombok.Getter;import java.util.Arrays;/*** 費用枚舉接口*/ public interface CosttypeEnumInterface {/*** 費用類型和費用信息-> 費用性質, 支付人 , 收取人, 費用信息狀態*/Getterenum CosttypePayerAndReceiveE…

使用PHP實現Web爬蟲

web爬蟲是一種自動化工具&#xff0c;可以瀏覽互聯網上的網頁&#xff0c;收集信息并存儲在一個數據庫中。在今天的大數據時代&#xff0c;web爬蟲越來越重要&#xff0c;因為它可以查找大量信息并進行數據分析。在本文中&#xff0c;我們將學習如何使用php編寫web爬蟲&#xf…

Radxa 學習摘錄

文章目錄 1、參考資料2、硬件知識CIF 和 ISP 3、shell4、交叉編譯工具鏈5、問題6、DTS7、驅動 1、參考資料 技術論壇&#xff08;推薦&#xff09; 官方資料下載 wiki資料 u-boot 文檔 u-boot 源碼 內核文檔 內核源碼 原理圖 radxa-repo radxa-build radxa-pkg radxa-doc…

尋找最適合你的交易風格

與Eagle Trader一起&#xff0c;您將擁有一位堅不可摧的合作伙伴&#xff0c;為您的交易之路增添堅實信心&#xff0c;并重塑交易體驗的每一個細節。我們量身定制的交易環境&#xff0c;更能讓您精準捕捉并駕馭符合您獨特交易風格的卓越條件&#xff0c;讓交易之旅更加自由暢快…

Python容器 之 字典--定義

1.字典的介紹 1, 字典 dict, 使用 {} 表示 2, 字典是由鍵(key)值(value)對組成的, key: value 3, 一個鍵值對是一組數據, 多個鍵值對之間使用 逗號隔開 4, 在一個字典中, 字典的鍵 是不能重復的&#xff0c;如果重復原數據會被覆蓋 5, 字典中的鍵 主要使用 字符串類型, 可以是…