SpringMVC中ModelAndView的使用及說明
ModelAndView 作用
1.返回到指定的頁面
ModelAndView構(gòu)造方法可以指定返回的頁面名稱
例:
return new ModelAndView("redirect:/m07.jsp");通過setViewName()方法跳轉(zhuǎn)到指定的頁面
例:
mav.setViewName("hello");2.返回參數(shù)到指定頁面的request作用于中
使用addObject()設(shè)置需要返回的值,addObject()有幾個不同參數(shù)的方法,可以默認和指定返回對象的名字,參數(shù)會返回到新頁面的request作用域中
ModelAndView 的3種用法
1.ModelAndView的第一種用法,先創(chuàng)建ModelAndView對象,再通過它的方法去設(shè)置數(shù)據(jù)與轉(zhuǎn)發(fā)的視圖名
setViewName(String viewName):設(shè)置此 ModelAndView 的視圖名稱, 由 DispatcherServlet 通過 ViewResolver 解析addObject(String attributeName, Object attributeValue):通過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ù)控制器)
* 定義的方法就是一個請求處理的方法
* @author caleb
*
*/
@Controller
@RequestMapping("/user")
public class TestController {
/**
* 利用ModelAndView來轉(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的第二種方法,可以直接通過帶有參數(shù)的構(gòu)造方法 ModelAndView(String viewName, String attributeName, Object attributeValue) 來返回數(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ù)控制器)
* 定義的方法就是一個請求處理的方法
* @author caleb
*
*/
@Controller
@RequestMapping("/user")
public class TestController {
/**
* 利用ModelAndView來轉(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ù)控制器)
* 定義的方法就是一個請求處理的方法
* @author caleb
*
*/
@Controller
@RequestMapping("/user")
public class TestController {
/**
* ModelAndView默認轉(zhuǎn)發(fā)
* ModelAndView還是可以設(shè)置重定向
* 1. 重定向另一個控制器
* 2. 重定向具體的jsp頁面
* @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使用實例
要點:
- 1.@RequestMapping 注解的使用
- 2.modelandview 的使用
- 3.jsp頁面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)新的頁面名稱
mav.addObject("address", "中國廣東省廣州市");//傳入request作用域參數(shù)
return mav;
}
}跳轉(zhuǎn)前jsp頁面鏈接設(shè)置
<a href="mvc/testModelAndView">Test ModelAndView</a>
跳轉(zhuǎn)后jsp頁面以及request作用于取值
<title>New Page</title>
</head>
<body>
<h1>ModelAndView 跳轉(zhuǎn)</h1>
${requestScope.address}
${address }
</body>視圖解析器配置


以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- SpringMVC數(shù)據(jù)頁響應(yīng)ModelAndView實現(xiàn)頁面跳轉(zhuǎn)
- SpringMvc返回modelandview返回的頁面無法跳轉(zhuǎn)問題及解決
- SpringMVC通過模型視圖ModelAndView渲染視圖的實現(xiàn)
- Springmvc ModelAndView原理及用法詳解
- springmvc處理模型數(shù)據(jù)ModelAndView過程詳解
- SpringMVC ModelAndView的用法使用詳解
- SpringMVC的ModelAndView傳值方法
- SpringMVC中Model和ModelAndView的EL表達式取值方法
相關(guān)文章
mybatis-plus saveOrUpdateBatch踩坑記錄
這篇文章主要介紹了mybatis-plus saveOrUpdateBatch踩坑記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
eclipse導(dǎo)入工程報錯問題項目或者文件有紅叉的解決方案
這篇文章主要介紹了eclipse導(dǎo)入工程報錯問題項目或者文件有紅叉的解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
如何利用Java?AWT?創(chuàng)建一個簡易計算器
這篇文章主要介紹了如何利用Java?AWT?創(chuàng)建一個簡易計算器,AWT?是一個有助于構(gòu)建?GUI?的?API?基于?java?應(yīng)用程序,下面關(guān)于其相關(guān)資料實現(xiàn)計算器的內(nèi)容詳細,需要的朋友可以參考一下2022-03-03
Springboot整合Socket實現(xiàn)單點發(fā)送,廣播群發(fā),1對1,1對多實戰(zhàn)
本文主要介紹了Springboot整合Socket實現(xiàn)單點發(fā)送,廣播群發(fā),1對1,1對多實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

