日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

springmvc视图解析器_SpringMVC视图及REST风格

發布時間:2023/12/20 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springmvc视图解析器_SpringMVC视图及REST风格 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是視圖解析器?

springMVC用于處理視圖最重要的兩個接口是ViewResolver和View。

ViewResolver的主要作用是把一個邏輯上的視圖名稱解析成一個真的的視圖,而SpringMVC中用于把View對象呈現給客戶端的是View對象本身,而ViewResolver只是把邏輯視圖名稱解析為對象的View對象。

View接口的主要作用是用來處理視圖,返給給客戶端。

視圖解析器的執行流程:

請求方法執行完成后,最終返回一個ModelAndView對象,對于那些返回String,View,ModelMap等類型SpingMVC最終會在內部給他們裝配成一個ModelAndView對象,它包含了邏輯名和模型對象的視圖。StringMVC借助視圖解析器得到最終的視圖對象,最終的視圖可以是JSP,也可能是其他的文件形式的視圖。對于最終采取那一種方式渲染處理器并不關心,處理器重點焦距在生產模型數據的工作上,從來實現了MVC充分的解耦。

視圖:

視圖的作用是渲染模型數據,將模型里面的數據以某種形式呈現給用戶。為了實現視圖模型和具體實現技術的解耦,Sping定義了一個View接口。視圖對象由視圖解析器負責實例化,由于視圖是無狀態的,所以它們不會有線程安全問題。

常用的視圖實現類:

InternalResourceView:將JSP資源封裝成一個視圖,是springmvc默認使用的視圖解析器。

JstlView:在JSP項目中引入jstl包springmvc會自動使用該解析器

MapingJackJsonView:將模型通過Jackson開源框架的ObjectMapper以Json方式輸出。

AbstractExcelView:Excel文檔視圖的抽象類,該視圖基于POI構造Excel文檔

AbstractPdfVIew:PDF文檔視圖的抽象類,該視圖基于iText構建Pdf文檔

BeanNameViewResolver:將邏輯視圖名解析為一個Bean,Bean的id等于邏輯視圖名。

視圖解析器的作用比較單一,將邏輯視圖解析為一個具體的視圖對象,所有的視圖解析器必須實現ViewResolver接口。

JSP是最常用的視圖技術,可以使用InternalResourceView作為視圖解析器

項目中只要引入了JSTL標簽則springmvc會自動把視圖有InternalResourceView轉換成JstlView,JstlView是它的子類。

每一個視圖解析器都實現了Ordered接口并開發出一個order屬性,可以通過它設置解析器的優先級,order越小優先級越高。Spring MVC會按視圖解析器順序的優先級對邏輯視圖名進行解析,直到解析成功并返回視圖對象,否則會拋出ServletException異常

自定義視圖:

@Componentpublic class MyView implements View { @Override public String getContentType() { return "text/html"; } @Override public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception { response.getWriter().println("

Spring MVC Custom view

"); }}

我們需要將這個自定義的視圖實現View接口然后重寫接口中的兩個方法。然后我們把這個類聲明成Bean交給spring管理。在這里我們配置一個beanName解析器。

然后寫一個請求,這個請求返回Bean的名字,默認是首字母小寫以駝峰式展現。

@RequestMapping("myView") public String myView(){ System.out.println("myView load ..."); return "myView"; }

這樣就可以完成我們的自定以視圖。

關與重定向:

如果返回字符串中帶有”redirect:“或"forward:",SpringMvc會將其做特殊的處理。

如果我們需要直接訪問視圖可以這樣配置

REST章節

REST(Representational State Transfer):即(資源)表現層狀態傳遞。

資源(Resources):網絡上的一個實體,或者說網絡上的一段信息。它可以是一段文本,一段歌曲,一張圖片等等,可以用一個URL指向它,每個資源都有一個特定的,獨一無二的URL,要訪問這個資源,直接訪問這個URI即可。

表現層(Representation):將資源呈現出來的形式。

狀態轉化(State Transfer):每發出一個請求,就代表客戶端和服務器一次交互。HTTP協議是一個無狀態的協議,即所有的狀態都保存在服務器端??蛻舳讼胍僮鞣掌?#xff0c;必須通過某些手段,讓服務器發生狀態轉化,而這種轉化是建立在表現層之上的,所以就是表現層狀態轉化。

在我們的SpringMVC之中支持HTTP四種請求狀態,REST規定的HTTP協議中四種表示操作方式的動詞

GET請求:獲取資源

POST請求:新建資源

PUT:更新資源

DELETE:刪除資源

我們需要在WEB.xml中配置實現PUT,DELETE請求方式,大家都知道在我們傳統的HTML中只有GET,POST兩種請求方式。

HiddenHttpMethodFilter org.springframework.web.filter.HiddenHttpMethodFilter HiddenHttpMethodFilter/*

GET請求

GET請求:test RestGet請求
@RequestMapping(value="/testRest/{id} 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的springmvc视图解析器_SpringMVC视图及REST风格的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。