SpringMVC中ModelAndView的使用及說(shuō)明
ModelAndView 作用
1.返回到指定的頁(yè)面
ModelAndView構(gòu)造方法可以指定返回的頁(yè)面名稱
例:
return new ModelAndView("redirect:/m07.jsp");
通過(guò)setViewName()方法跳轉(zhuǎn)到指定的頁(yè)面
例:
mav.setViewName("hello");
2.返回參數(shù)到指定頁(yè)面的request作用于中
使用addObject()設(shè)置需要返回的值,addObject()有幾個(gè)不同參數(shù)的方法,可以默認(rèn)和指定返回對(duì)象的名字,參數(shù)會(huì)返回到新頁(yè)面的request作用域中
ModelAndView 的3種用法
1.ModelAndView的第一種用法,先創(chuàng)建ModelAndView對(duì)象,再通過(guò)它的方法去設(shè)置數(shù)據(jù)與轉(zhuǎn)發(fā)的視圖名
setViewName(String viewName)
:設(shè)置此 ModelAndView 的視圖名稱, 由 DispatcherServlet 通過(guò) ViewResolver 解析addObject(String attributeName, Object attributeValue)
:通過(guò)key/value的方式綁定數(shù)據(jù)
package com.gxa.spmvc.controller; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.gxa.spmvc.entity.Student; /** * SpringMVC的控制器(業(yè)務(wù)控制器) * 定義的方法就是一個(gè)請(qǐng)求處理的方法 * @author caleb * */ @Controller @RequestMapping("/user") public class TestController { /** * 利用ModelAndView來(lái)轉(zhuǎn)發(fā)數(shù)據(jù),給前端視圖 * @return */ @RequestMapping("/m06") public ModelAndView m06() { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("m06"); modelAndView.addObject("message", "Hello World, Hello Kitty"); return modelAndView; } }
2.ModelAndView的第二種方法,可以直接通過(guò)帶有參數(shù)的構(gòu)造方法 ModelAndView(String viewName, String attributeName, Object attributeValue) 來(lái)返回?cái)?shù)據(jù)與轉(zhuǎn)發(fā)的視圖名
package com.gxa.spmvc.controller; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.gxa.spmvc.entity.Student; /** * SpringMVC的控制器(業(yè)務(wù)控制器) * 定義的方法就是一個(gè)請(qǐng)求處理的方法 * @author caleb * */ @Controller @RequestMapping("/user") public class TestController { /** * 利用ModelAndView來(lái)轉(zhuǎn)發(fā)數(shù)據(jù),給前端視圖 * @return */ @RequestMapping("/m07") public ModelAndView m07() { return new ModelAndView("m07", "message", "Hello World"); } }
3.ModelAndView的第三種用法,設(shè)置重定向
package com.gxa.spmvc.controller; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.gxa.spmvc.entity.Student; /** * SpringMVC的控制器(業(yè)務(wù)控制器) * 定義的方法就是一個(gè)請(qǐng)求處理的方法 * @author caleb * */ @Controller @RequestMapping("/user") public class TestController { /** * ModelAndView默認(rèn)轉(zhuǎn)發(fā) * ModelAndView還是可以設(shè)置重定向 * 1. 重定向另一個(gè)控制器 * 2. 重定向具體的jsp頁(yè)面 * @param name * @return */ @RequestMapping("/{name}/m07") public ModelAndView m07(@PathVariable String name) { if (!"admin".equals(name)) { return new ModelAndView("redirect:/m07.jsp"); } return new ModelAndView("m07"); } }
ModelAndView使用實(shí)例
要點(diǎn):
- 1.@RequestMapping 注解的使用
- 2.modelandview 的使用
- 3.jsp頁(yè)面request作用域的取值
- 4.視圖解析器配置
ModelAndView 使用代碼
package com.dgr.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @RequestMapping("mvc") @Controller public class TestRequestMMapping { @RequestMapping(value="/testModelAndView") public ModelAndView testModelAndView(){ ModelAndView mav = new ModelAndView(); mav.setViewName("hello");//跳轉(zhuǎn)新的頁(yè)面名稱 mav.addObject("address", "中國(guó)廣東省廣州市");//傳入request作用域參數(shù) return mav; } }
跳轉(zhuǎn)前jsp頁(yè)面鏈接設(shè)置
<a href="mvc/testModelAndView">Test ModelAndView</a>
跳轉(zhuǎn)后jsp頁(yè)面以及request作用于取值
<title>New Page</title> </head> <body> <h1>ModelAndView 跳轉(zhuǎn)</h1> ${requestScope.address} ${address } </body>
視圖解析器配置
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringMVC數(shù)據(jù)頁(yè)響應(yīng)ModelAndView實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)
- SpringMvc返回modelandview返回的頁(yè)面無(wú)法跳轉(zhuǎn)問(wèn)題及解決
- SpringMVC通過(guò)模型視圖ModelAndView渲染視圖的實(shí)現(xiàn)
- Springmvc ModelAndView原理及用法詳解
- springmvc處理模型數(shù)據(jù)ModelAndView過(guò)程詳解
- SpringMVC ModelAndView的用法使用詳解
- SpringMVC的ModelAndView傳值方法
- SpringMVC中Model和ModelAndView的EL表達(dá)式取值方法
相關(guān)文章
java中的JsonSerializer用法,前后端單位轉(zhuǎn)換必備
這篇文章主要介紹了java中的JsonSerializer用法,前后端單位轉(zhuǎn)換必備!具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10java網(wǎng)絡(luò)編程學(xué)習(xí)java聊天程序代碼分享
java聊天程序代碼分享,大家參考使用吧2013-12-12Java導(dǎo)出Excel統(tǒng)計(jì)報(bào)表合并單元格的方法詳解
我們?cè)谌粘>幊踢^(guò)程中,總是會(huì)碰見(jiàn)導(dǎo)出相關(guān)表格信息的需求,所以就讓我們一起來(lái)學(xué)習(xí)一下,這篇文章主要給大家介紹了關(guān)于Java導(dǎo)出Excel統(tǒng)計(jì)報(bào)表合并單元格的相關(guān)資料,需要的朋友可以參考下2021-10-10基于Spring Boot的Environment源碼理解實(shí)現(xiàn)分散配置詳解
這篇文章主要給大家介紹了基于Spring Boot的Environment源碼理解實(shí)現(xiàn)分散配置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08手把手教學(xué)Win10同時(shí)安裝兩個(gè)版本的JDK并隨時(shí)切換(JDK8和JDK11)
最近在學(xué)習(xí)JDK11的一些新特性,但是日常使用基本上都是基于JDK8,因此,需要在win環(huán)境下安裝多個(gè)版本的JDK,下面這篇文章主要給大家介紹了手把手教學(xué)Win10同時(shí)安裝兩個(gè)版本的JDK(JDK8和JDK11)并隨時(shí)切換的相關(guān)資料,需要的朋友可以參考下2023-03-03Mybatis-plus:${ew.sqlselect}用法說(shuō)明
這篇文章主要介紹了Mybatis-plus:${ew.sqlselect}用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06IntelliJ IDEA 2020.2正式發(fā)布,兩點(diǎn)多多總能助你提效
這篇文章主要介紹了IntelliJ IDEA 2020.2正式發(fā)布,諸多亮點(diǎn)總有幾款能助你提效,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-07-07Spring Cloud Gateway 如何修改HTTP響應(yīng)信息
這篇文章主要介紹了Spring Cloud Gateway 修改HTTP響應(yīng)信息的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07java.math.BigDecimal的用法及加減乘除計(jì)算
這篇文章主要介紹了java.math.BigDecimal的用法及加減乘除計(jì)算,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05