欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?MVC數(shù)據(jù)響應(yīng)處理詳解

 更新時間:2022年05月24日 12:59:52   作者:郭尕  
這篇文章主要給大家介紹了關(guān)于Spring?MVC數(shù)據(jù)響應(yīng)處理的相關(guān)資料,本教程詳細(xì)的講解SpringMVC框架的使用,非常詳細(xì)的案例講解,一步一步帶你走入springmvc框架的核心,需要的朋友可以參考下

1. 內(nèi)置視圖解析器

Spring MVC 中的視圖解析器負(fù)責(zé)解析視圖,可以通過在配置文件中定義一個ViewResolver來配置視圖解析器,配置如下:

<!--默認(rèn)的內(nèi)置視圖解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!--設(shè)置前綴-->
    <property name="prefix" value="/WEB-INF/templates"/>
    <!--設(shè)置后綴-->
    <property name="suffix" value=".html"/>
</bean>

定義了一個id為viewResolver的視圖解析器,并設(shè)置了前綴后綴,這樣設(shè)置的好處就是簡化方法中定義的路徑。在訪問視圖解析器是就會自動的增加前綴和后綴。

2. 使用原生servlet的對象傳遞數(shù)據(jù)

HttpServletRequest:通過request對象獲取請求信息

控制器方法:

//使用servlet傳遞數(shù)據(jù)
@RequestMapping("/testServlet")
public String testRequestByServletAPI(HttpServletRequest request){
    request.setAttribute("test","hello,servlet");
    return "success";
}

3. 使用ModelAndView對象傳輸數(shù)據(jù)

當(dāng)使用modelAndView對象的時候,返回值的類型也必須是ModelAndView,可以將要跳轉(zhuǎn)的頁面設(shè)置成view的名稱,來完成跳轉(zhuǎn)的功能,同時數(shù)據(jù)也是放到request域中。

使用方式:

  • 創(chuàng)建ModelAndView對象
  • 向模型對象中添加數(shù)據(jù)
  • 設(shè)置邏輯視圖名
  • 返回ModelAndView對象

控制器方法:

 @RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView(){
        //創(chuàng)建ModelAndView對象
        ModelAndView mav = new ModelAndView();
        //處理模型數(shù)據(jù),即向請求域request共享數(shù)據(jù)
        mav.addObject("test","Hello ModelAndView");
        //設(shè)置視圖名稱
        mav.setViewName("success");
        return mav;
    }

ModelAndView對象的作用:

將控制器方法中處理的結(jié)果數(shù)據(jù)傳遞到結(jié)果頁面,也就是把在結(jié)果頁面上需要的數(shù)據(jù)放到ModelAndView對象中即可,其作用類似于request對象的setAttribute方法的作用,用來在一個請求過程中傳遞處理的數(shù)據(jù)。

4. 使用Model、Map、ModelMap傳輸數(shù)據(jù)

在SpringMVC中除了可以使用原生servlet的對象傳遞數(shù)據(jù)之外,還有什么其他的方式呢?
可以在方法的參數(shù)上傳入Model,ModelMap,Map類型,此時都能夠?qū)?shù)據(jù)傳送回頁面。

控制器方法:

@RequestMapping("/testModel")
public String testModel(Model model){
     model.addAttribute("test","Hello Model");
     return "success";
 }

 @RequestMapping("/testMap")
 public String testMap(Map<String,Object> map){
     map.put("test","Hello Map");
     return "success";
 }

 @RequestMapping("/testModelMap")
 public String testModelMap(ModelMap modelMap){
     modelMap.addAttribute("test","hello modelmap");
     return "success";
 }

如果方法的入?yún)镸ap,Model和ModelMap類型,Spring MVC會將隱含模型的引用傳遞給這些入?yún)ⅰT诜椒w內(nèi),開發(fā)者可以通過這個入?yún)ο笤L問到模型中的所有數(shù)據(jù),也可以向模型中添加新的屬性數(shù)據(jù),作用類似于request對象的setAttribute方法的作用: 用來在一個請求過程中傳遞處理的數(shù)據(jù)。

三者之間的關(guān)系:

  • Map為原生的儲存鍵值的對象,里面很多的方法可以使用;
  • Model 只有寥寥幾個方法只適合用于儲存數(shù)據(jù),簡化了新手對于Model對象的操作和理解;
  • ModelMap 繼承了 LinkedMap ,除了實現(xiàn)了自身的一些方法,同樣的繼承 LinkedMap 的方法和特性;
  • Map、Model、ModelMap的底層都是使用BindingAwareModelMap。
  • Map、Model和ModelMap返回的是地址路徑

5. 使用session傳輸數(shù)據(jù)

HttpSession:通過session對象得到session中存儲的對象

控制器方法

//向session域共享數(shù)據(jù)
@RequestMapping("/testSession")
 public String testSession(HttpSession httpSession){
     httpSession.setAttribute("testSessionScope","hello session");
     return "success";
 }

 //向application域共享數(shù)據(jù)
 @RequestMapping("/testApplication")
 public String testApplication(HttpSession session){
     ServletContext servletContext = session.getServletContext();
     servletContext.setAttribute("testApplicationScope","hello application");
     return "success";
 }

總結(jié)

到此這篇關(guān)于Spring MVC數(shù)據(jù)響應(yīng)處理的文章就介紹到這了,更多相關(guān)Spring MVC響應(yīng)處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解SpringBoot中實現(xiàn)依賴注入功能

    詳解SpringBoot中實現(xiàn)依賴注入功能

    這篇文章主要介紹了詳解SpringBoot中實現(xiàn)依賴注入功能,SpringBoot的實現(xiàn)方式基本都是通過注解實現(xiàn)的。有興趣的可以了解一下。
    2017-04-04
  • 通過實踐了解如何處理Java異常

    通過實踐了解如何處理Java異常

    Java中的異常處理不是一個簡單的主題。初學(xué)者發(fā)現(xiàn)它很難理解,甚至有經(jīng)驗的開發(fā)者也可以花幾個小時討論如何以及應(yīng)該拋出或處理哪些異常。下面我們通過實踐來了解如何解決異常
    2019-05-05
  • Springboot之自定義全局異常處理的實現(xiàn)

    Springboot之自定義全局異常處理的實現(xiàn)

    這篇文章主要介紹了Springboot之自定義全局異常處理的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 有關(guān)Java常見的誤解小結(jié)(來看一看)

    有關(guān)Java常見的誤解小結(jié)(來看一看)

    下面小編就為大家?guī)硪黄嘘P(guān)Java常見的誤解小結(jié)(來看一看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Jmeter測試必知的名詞及環(huán)境搭建

    Jmeter測試必知的名詞及環(huán)境搭建

    我們本章開始學(xué)習(xí)Jmeter,后續(xù)還會有RF以及LoadRunner 的介紹,為什么要學(xué)習(xí)Jmeter,它主要是用來做性能測試的,其中它也需要間接或直接的需要用到抓包工具
    2021-09-09
  • Java中StringUtils工具類的一些用法實例

    Java中StringUtils工具類的一些用法實例

    這篇文章主要介紹了Java中StringUtils工具類的一些用法實例,本文著重講解了isEmpty和isBlank方法的使用,另外也講解了trim、strip等方法的使用實例,需要的朋友可以參考下
    2015-06-06
  • springboot整合curator實現(xiàn)分布式鎖過程

    springboot整合curator實現(xiàn)分布式鎖過程

    這篇文章主要介紹了springboot整合curator實現(xiàn)分布式鎖過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • springboot layui hutool Excel導(dǎo)入的實現(xiàn)

    springboot layui hutool Excel導(dǎo)入的實現(xiàn)

    本文主要介紹了springboot layui hutool Excel導(dǎo)入的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Jenkins集成sonarQube實現(xiàn)代碼質(zhì)量檢查過程圖解

    Jenkins集成sonarQube實現(xiàn)代碼質(zhì)量檢查過程圖解

    這篇文章主要介紹了Jenkins集成sonarQube實現(xiàn)代碼質(zhì)量檢查過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • java獲取本地文件的多種方式實現(xiàn)與比較

    java獲取本地文件的多種方式實現(xiàn)與比較

    這篇文章主要為大家詳細(xì)介紹了java獲取本地文件的多種方式實現(xiàn)與結(jié)果比較,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11

最新評論