133_Java_SpringMVC_域對象共享數據_視圖

      網友投稿 814 2025-04-04

      域對象共享數據

      原始

      1 使用ServletAPI向request域對象共享數據

      @Controller public class ScopeController { //使用servletAPI向request域對象共享數據 @RequestMapping("/testRequestByServletAPI") public String testRequestByServletAPI(HttpServletRequest request){ request.setAttribute("testRequestScope", "hello,servletAPI"); return "success"; }

      MVC -不管哪種方式,最終數據都會被封裝到 ModelAndView中

      2 使用ModelAndView向request域對象共享數據

      3 使用Model向request域對象共享數據

      4 使用map向request域對象共享數據

      5 使用ModelMap向request域對象共享數據

      6 ?Model、ModelMap、Map的關系

      @RequestMapping("/testModelAndView") public ModelAndView testModelAndView(){ ModelAndView mav = new ModelAndView(); //處理模型數據,即向請求域request共享數據 mav.addObject("testRequestScope", "hello,ModelAndView"); //設置視圖名稱 mav.setViewName("success"); return mav; } // BindingAwareModelMap // Model、ModelMap、Map類型的參數其實本質上都是 BindingAwareModelMap 類型的 @RequestMapping("/testModel") public String testModel(Model model){ model.addAttribute("testRequestScope", "hello,model"); System.out.println(model.getClass().getName()); //BindingAwareModelMap return "success"; } @RequestMapping("/testMap") public String testMap(Map map){ map.put("testRequestScope", "hello,map"); System.out.println(map.getClass().getName()); //BindingAwareModelMap return "success"; } @RequestMapping("/testModelMap") public String testModelMap(ModelMap modelMap){ modelMap.addAttribute("testRequestScope", "hello,ModelMap"); System.out.println(modelMap.getClass().getName()); //BindingAwareModelMap return "success"; }

      7 ?向session域共享數據

      session 鈍化: 服務器關閉,瀏覽器未關閉 說明會話繼續,存儲在session的數據會序列化到磁盤上

      session 活化: 服務器重新開啟 ,將鈍化后session的數據重新讀取到session中 稱為活化

      8 ?向application域共享數據

      @RequestMapping("/testSession") public String testSession(HttpSession session){ session.setAttribute("testSessionScope", "hello,session"); return "success"; } @RequestMapping("/testApplication") public String testApplication(HttpSession session){ ServletContext context = session.getServletContext(); context.setAttribute("testApplicationScope", "hello,application"); return "success"; }

      首頁

      首頁

      通過servletAPI向request域對象共享數據
      通過ModelAndView向request域對象共享數據
      通過Model向request域對象共享數據
      通過map向request域對象共享數據
      通過ModelMap向request域對象共享數據
      通過servletAPI向session域對象共享數據
      通過servletAPI向application域對象共享數據

      SpringMVC的視圖

      SpringMVC中的視圖是View接口,視圖的作用渲染數據,將模型Model中的數據展示給用戶

      SpringMVC視圖的種類很多,默認有轉發視圖和重定向視圖

      當工程引入jstl的依賴,轉發視圖會自動轉換為JstlView

      若使用的視圖技術為Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的視圖解析器,由此視圖解析器解析之后所得到的是ThymeleafView

      1 ThymeleafView

      當控制器方法中所設置的視圖名稱沒有任何前綴時,此時的視圖名稱會被SpringMVC配置文件中所配置的視圖解析器解析,

      視圖名稱拼接視圖前綴和視圖后綴所得到的最終路徑,會通過轉發的方式實現跳轉

      2 轉發視圖SpringMVC中默認的轉發視圖是InternalResourceView

      SpringMVC中創建轉發視圖的情況:

      當控制器方法中所設置的視圖名稱以"forward:"為前綴時,

      創建InternalResourceView視圖,此時的視圖名稱不會被SpringMVC配置文件中所配置的視圖解析器解析,

      而是會將前綴"forward:"去掉,剩余部分作為最終路徑通過轉發的方式實現跳轉

      例如"forward:/","forward:/employee"

      3 重定向視圖SpringMVC中默認的重定向視圖是RedirectView

      當控制器方法中所設置的視圖名稱以"redirect:"為前綴時,創建RedirectView視圖,此時的視圖名稱不會被SpringMVC配置文件中所配置的視圖解析器解析,

      而是會將前綴"redirect:"去掉,剩余部分作為最終路徑通過重定向的方式實現跳轉

      例如"redirect:/","redirect:/employee"

      @Controller public class ViewController { @RequestMapping("/testThymeleafView") public String testThymeleafView(){ return "success"; // 轉發瀏覽器 地址http://localhost:8080/springMVC/testThymeleafView } @RequestMapping("/testForward") public String testForward(){ return "forward:/testThymeleafView"; //http://localhost:8080/springMVC/testForward } @RequestMapping("/testRedirect") public String testRedirect(){ return "redirect:/testThymeleafView"; //http://localhost:8080/springMVC/testThymeleafView } }

      Title 測試ThymeleafView
      測試InternalResourceView
      測試RedirectView

      133_Java_SpringMVC_域對象共享數據_視圖

      4 視圖控制器view-controller

      當控制器方法中,僅僅用來實現頁面跳轉,即只需要設置視圖名稱時,可以將處理器方法使用view-controller標簽進行表示

      JSP 頁面跳轉

      MVC配置

      <%@ page contentType="text/html;charset=UTF-8" language="java" %> Title

      首頁

      success.jsp

      @Controller public class JspController { @RequestMapping("/success") public String success(){ return "success"; } }

      Java MVC

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:IMPRODUCT(improduction)
      下一篇:Excel條件篩選下求不重復值
      相關文章
      亚洲av成人中文无码专区| 亚洲精品国产精品乱码不99| 情人伊人久久综合亚洲| 国产成人综合亚洲| 亚洲欧美日韩自偷自拍| 亚洲色www永久网站| 亚洲三级视频在线观看| 亚洲欧洲在线播放| 亚洲人成777在线播放| 亚洲国产精品午夜电影| 亚洲人成在线播放| 亚洲国产成人99精品激情在线| 亚洲av无码片在线观看| 亚洲日本国产综合高清| 亚洲人av高清无码| 亚洲欧美在线x视频| 日本中文一区二区三区亚洲| 亚洲VA综合VA国产产VA中| 亚洲精品一级无码鲁丝片| 久久久久亚洲?V成人无码| 亚洲永久精品ww47| 亚洲高清在线播放| 337p日本欧洲亚洲大胆色噜噜| 亚洲欧洲日产韩国在线| 456亚洲人成在线播放网站| 亚洲色欲啪啪久久WWW综合网| 亚洲国产成人AV在线播放| 一区二区三区亚洲视频| 亚洲A∨精品一区二区三区| 久久亚洲2019中文字幕| 亚洲国产精品无码成人片久久| 亚洲人成网址在线观看| 亚洲导航深夜福利| 亚洲熟妇av午夜无码不卡| 国产精品亚洲一区二区三区久久| 国产亚洲一区二区三区在线不卡 | 亚洲av无码电影网| 亚洲一卡一卡二新区无人区| 久久久久亚洲AV无码去区首| 国产a v无码专区亚洲av| 久久亚洲伊人中字综合精品|