最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

SpringMVC由淺入深實用教程-返回對象Object

2021-03-18 15:05 作者:動力節(jié)點小王本王  | 我要投稿



?

返回對象Object

處理器方法也可以返回Object 對象。這個Object 可以是Integer, String,自定義對象,Map,List 等。但返回的對象不是作為邏輯視圖出現(xiàn)的,而是作為直接在頁面顯示的數(shù)據(jù)出現(xiàn)的。

返回對象,需要使用@ResponseBody 注解,將轉(zhuǎn)換后的JSON 數(shù)據(jù)放入到響應(yīng)體中。

(1)?環(huán)境搭建

A 、 maven pom.xml

由于返回Object 數(shù)據(jù),一般都是將數(shù)據(jù)轉(zhuǎn)化為了JSON 對象后傳遞給瀏覽器頁面的。而這個由Object 轉(zhuǎn)換為JSON,是由 Jackson 工具完成的。所以需要導(dǎo)入Jackson 的相關(guān)Jar 包。

依賴:

B、 聲明注解驅(qū)動

Object?數(shù)據(jù)轉(zhuǎn)化為JSON?數(shù)據(jù),需要由消息轉(zhuǎn)換器HttpMessageConverter?完成。而轉(zhuǎn)換器的開啟,需要由<mvc:annotation- driven/>來完成。

SpringMVC 使用消息轉(zhuǎn)換器實現(xiàn)請求數(shù)據(jù)和對象,處理器方法返回對象和響應(yīng)輸出之間的自動轉(zhuǎn)換

當 Spring 容器進行初始化過程中,在<mvc:annotation-driven/>處創(chuàng)建注解驅(qū)動時,默認創(chuàng)建了七個HttpMessageConverter 對象。也就是說,我們注冊<mvc:annotation-driven/>,就是為了讓容器為我們創(chuàng)建HttpMessageConverter 對象。

HttpMessageConverter?接口:

HttpMessageConverter<T>是Spring3.0?新添加的一個接口,負責將請求息轉(zhuǎn)換為一個對象(類型T),將對象(類型T)輸出為響應(yīng)信息

HttpMessageConverter<T>接口定義的方法:

  • boolean canRead(Class<?> clazz,MediaType mediaType): 指定轉(zhuǎn)換器可以讀取的對象類型,即轉(zhuǎn)換器是否可將請求信息轉(zhuǎn)換為 clazz 類型的對象,同時指定支持 MIME 類型(text/html,applaiction/json 等)

  • boolean?canWrite(Class<?> clazz,MediaType?mediaType):指定轉(zhuǎn)換器是否可將 clazz?類型的對象寫到響應(yīng)流中,響應(yīng)流支持的媒體類型在 MediaType 中定義。

  • LIst<MediaType> getSupportMediaTypes():該轉(zhuǎn)換器支持的媒體類型。

  • T read(Class<? extends T> clazz,HttpInputMessage inputMessage):將請求信息流轉(zhuǎn)換為T 類型的對象。

  • void write(T t,MediaType contnetType,HttpOutputMessgae outputMessage):將 T 類型的對象寫到響應(yīng)流中,同時指定相應(yīng)的媒體類型為contentType

加入注解驅(qū)動<mvc:annotation-driven/>后適配器類的 messageConverters 屬性值

(2)?返回自定義類型對象

返回自定義類型對象時,不能以對象的形式直接返回給客戶端瀏覽器,而是將對象轉(zhuǎn)換為JSON 格式的數(shù)據(jù)發(fā)送給瀏覽器的。

由于轉(zhuǎn)換器底層使用了Jackson 轉(zhuǎn)換方式將對象轉(zhuǎn)換為JSON 數(shù)據(jù),所以需要導(dǎo)入Jackson 的相關(guān)Jar 包。

項目:returnObject-custom。在 returnVoid-ajax 基礎(chǔ)上進行修改。

Step1:定義數(shù)據(jù)類

Step2:修改處理器 MyController

Step3:修改index 頁面

(3)?返回 List?集合

項目:returnObject-list。在 returnObject-custom 基礎(chǔ)上進行修改。

Step1:修改處理器 MyController

Step2:修改index 頁面

(4)?返回字符串對象

若要返回非中文字符串,將前面返回數(shù)值型數(shù)據(jù)的返回值直接修改為字符串即可。但若返回的字符串中帶有中文字符,則接收方頁面將會出現(xiàn)亂碼。此時需要使用@RequestMapping?的produces?屬性指定字符集。

produces,產(chǎn)品,結(jié)果,即該屬性用于設(shè)置輸出結(jié)果類型。

項目:returnObject-String。直接修改處理器。

修改頁面:

解讀<url-pattern/>

配置詳解

(1) *.do

在沒有特殊要求的情況下,SpringMVC?的中央調(diào)度器DispatcherServlet 的<url-pattern/>常使用后輟匹配方式,如寫為*.do?或者 *.action,?*.mvc 等。

(2) /

可以寫為/,因為DispatcherServlet 會將向靜態(tài)資源的獲取請求,例

如.css、.js、.jpg、.png?等資源的獲取請求,當作是一個普通的 Controller?請求。中央調(diào)度器會調(diào)用處理器映射器為其查找相應(yīng)的處理器。當然也是找不到的,所以在這種情況下,所有的靜態(tài)資源獲取請求也均會報 404?錯誤。

項目:url-pattern。在項目primary-annotation 基礎(chǔ)上進行修改。

需求:在index.jsp 頁面中存在一個訪問圖片的鏈接。該項目用于演示將<url- pattern/>寫為*.do 可以訪問到該圖片,而寫為/,則無法訪問。

A、 在項目中添加圖片

在項目的WebRoot 下添加一個目錄images,并在其中添加一張圖片資源。

B、 修改index 頁面

C、 修改<url-pattern/>的值

保持<url-pattern/>的值為 *.do,擴展名方式,圖片會正常顯示。將<url-pattern/>的值修改為 / ,則圖片將無法顯示。

靜態(tài)資源訪問

<url-pattern/>的值并不是說寫為/后,靜態(tài)資源就無法訪問了。經(jīng)過一些配置后,該問題也是可以解決的。

(1)?使用<mvc:default-servlet-handler/>

聲明了<mvc:default-servlet-handler />后,springmvc 框架會在容器中創(chuàng)建DefaultServletHttpRequestHandler 處理器對象。它會像一個檢查員, 對進入DispatcherServlet 的URL 進行篩查,如果發(fā)現(xiàn)是靜態(tài)資源的請求,就將該請求轉(zhuǎn)由Web 應(yīng)用服務(wù)器默認的 Servlet 處理。一般的服務(wù)器都有默認的Servlet。

在 Tomcat 中,有一個專門用于處理靜態(tài)資源訪問的 Servlet 名叫DefaultServlet。其<servlet-name/>為 default。可以處理各種靜態(tài)資源訪問請求。該 Servlet 注冊在 Tomcat 服務(wù)器的web.xml 中。在 Tomcat 安裝目錄

/conf/web.xml。

項目:url-pattern-2。在項目url-pattern 基礎(chǔ)上修改。

只需要在springmvc.xml 中添加<mvc:default-servlet-handler/>標簽即可。

<mvc:default-servlet-handler/>表示使用DefaultServletHttpRequestHandler?處理器對象。而該處理器調(diào)用了 Tomcat DefaultServlet?來處理靜態(tài)資源的訪問請求。

當然了,要想使用<mvc: …/>標簽,需要引入 mvc 約束

該約束可從 Spring 幫助文檔中搜索關(guān)鍵字spring-mvc.xsd 即可獲?。?/span>

docs/spring-framework-reference/htmlsingle/index.html

(2)?使用<mvc:resources/>(掌握)

項目:url-pattern-3。在項目url-pattern 基礎(chǔ)上修改。

在 Spring3.0 版本后,Spring 定義了專門用于處理靜態(tài)資源訪問請求的處理器ResourceHttpRequestHandler。并且添加了<mvc:resources/>標簽, 專門用于解決靜態(tài)資源無法訪問問題。需要在springmvc 配置文件中添加如下形式的配置

location 表示靜態(tài)資源所在目錄。當然,目錄不要使用/WEB-INF/及其子目錄。

mapping 表示對該資源的請求(/images/開始的請求,如 /image/beauty.jpg ,,/images/car.png )。注意,后面是兩個星號**

(3)?聲明注解驅(qū)動

解決動態(tài)資源和靜態(tài)資源沖突的問題,在springmvc 配置文件加入:

最后奉上視頻教程??,視頻觀看效果更佳??!走過路過別忘素質(zhì)三連哦~~




SpringMVC由淺入深實用教程-返回對象Object的評論 (共 條)

分享到微博請遵守國家法律
巴彦县| 定州市| 盱眙县| 界首市| 曲靖市| 宾阳县| 霍山县| 盐津县| 柳江县| 延安市| 抚远县| 尼勒克县| 东阳市| 开鲁县| 常熟市| 潢川县| 辉南县| 洛宁县| 西乡县| 祥云县| 额济纳旗| 甘肃省| 壤塘县| 德惠市| 新巴尔虎左旗| 宜宾县| 宁阳县| 科尔| 若尔盖县| 长白| 彭州市| 安徽省| 新河县| 天长市| 岢岚县| 湖州市| 新和县| 荥阳市| 来宾市| 连城县| 班戈县|