SpringMVC后端Controller頁面跳轉(zhuǎn)的三種方式匯總
一、前言
常見的Web開發(fā)中,我們在使用SpringMVC框架時(shí),經(jīng)常遇到多種不同情況下不同的返回方式,有的多種返回頁面的方式,也有的是多種返回?cái)?shù)據(jù)到前端的方式
這篇文章主要總結(jié)常見Web開發(fā)中針對(duì)不同情況返回頁面的方式。
二、根據(jù) String 字符串跳轉(zhuǎn)
1、返回字符串 --- 返回jsp頁面
/**
* description: 返回字符串 --- 返回jsp頁面,JSP通過EL表達(dá)式取值
* @author cao
* @date 2019年4月10日 下午10:17
*/
@RequestMapping(value={"/forwardJsp"})
public String forwardJsp(Model model){
model.addAttribute("name", "張三");
return "modules/sys/sysLogin";
}2、返回字符串 --- 服務(wù)端轉(zhuǎn)發(fā)
/**
* description: 返回字符串 --- 服務(wù)端轉(zhuǎn)發(fā),JSP頁面通過EL表達(dá)式取值
* @author cao
* @date 2019年4月10日 下午10:20
*/
@RequestMapping(value={"/forward"})
public String forward(Model model){
model.addAttribute("name", "張三");
return "forward:forwardJsp";
}3、返回字符串 --- 客戶端重定向
/**
* description: 返回字符串 --- 客戶端重定向
* @author cao
* @date 2019年4月10日 下午10:27
*/
@RequestMapping(value="/redirect")
public String redirect(){
return "redirect:"+"/forward";
}三、根據(jù) request 或 response 進(jìn)行跳轉(zhuǎn)
1、返回 void --- 請求轉(zhuǎn)發(fā)(request轉(zhuǎn)發(fā))
/**
* description: 返回 void --- 請求轉(zhuǎn)發(fā)(request轉(zhuǎn)發(fā))
* @author cao
* @date 2019年4月10日 下午10:26
*/
@RequestMapping(value="/requestForward")
public void requestForward(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
request.setAttribute("name", "請求轉(zhuǎn)發(fā)(服務(wù)端轉(zhuǎn)發(fā))");
request.getRequestDispatcher("/forward").forward(request, response);
}2、返回 void --- 重定向 (response)
/**
* description: 返回 void --- 重定向 (response)
* @author cao
* @date 2019年4月10日 下午10:29
*/
@RequestMapping(value="/response")
public void response(HttpServletResponse response) throws IOException{
response.sendRedirect("/forwardJsp");
}3、返回 void --- Json字符串
/**
* description: 返回 void --- Json字符串
* @author cao
* @date 2019年4月10日 下午10:30
*/
@RequestMapping(value="/responseJson")
public void responseJson(HttpServletResponse response) throws IOException{
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");
}四、根據(jù) ModelAndView 對(duì)象進(jìn)行跳轉(zhuǎn)
1、返回對(duì)象 ModelAndView --- 返回 jsp 頁面
/**
* description: 返回對(duì)象 ModelAndView --- 返回 jsp 頁面
* @author cao
* @date 2019年4月10日 下午10:32
*/
@RequestMapping(value="/modelAndViewJsp")
public ModelAndView modelAndViewJsp(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("modules/sys/sysLogin");//指定跳轉(zhuǎn)的頁面
modelAndView.addObject("name","李四"); //綁定傳遞的數(shù)據(jù)
return modelAndView;
}2、返回對(duì)象 ModelAndView --- 服務(wù)端轉(zhuǎn)發(fā)
/**
* description: 返回對(duì)象 ModelAndView --- 服務(wù)端轉(zhuǎn)發(fā)
* @author cao
* @date 2019年4月10日 下午10:37
*/
@RequestMapping(value="/modelAndViewForward")
public ModelAndView modelAndViewForward(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("forward:/forwardJsp");
modelAndView.addObject("name","李四"); //綁定傳遞的數(shù)據(jù)
return modelAndView;
}3、返回對(duì)象 ModelAndView --- 重定向
/**
* description: 返回對(duì)象 ModelAndView --- 重定向
* @author cao
* @date 2019年4月10日 下午10:40
*/
@RequestMapping(value="/modelAndViewRedirect")
public ModelAndView modelAndViewRedirect(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("redirect:/forwardJsp");
modelAndView.addObject("name","李四"); //綁定傳遞的數(shù)據(jù)
return modelAndView;
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán)
SpringSecurity是一個(gè)強(qiáng)大且靈活的身份驗(yàn)證和訪問控制框架,本文主要介紹了SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán),具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07
PowerJob的IdGenerateService工作流程源碼解讀
這篇文章主要為大家介紹了PowerJob的IdGenerateService工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
springboot整合xxl-job實(shí)現(xiàn)分布式定時(shí)任務(wù)的過程
XXL-JOB是一個(gè)分布式任務(wù)調(diào)度平臺(tái),其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、學(xué)習(xí)簡單、輕量級(jí)、易擴(kuò)展,這篇文章主要介紹了springboot整合xxl-job分布式定時(shí)任務(wù),需要的朋友可以參考下2022-08-08
java中isEmpty和isBlank的區(qū)別小結(jié)
Java中的isEmpty和isBlank都是用來判斷字符串是否為空的方法,但在不同的情況下有所區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
java實(shí)現(xiàn)文本框和文本區(qū)的輸入輸出
這篇文章主要介紹了java實(shí)現(xiàn)文本框和文本區(qū)的輸入輸出的方法和具體示例,有需要的小伙伴可以參考下。2015-06-06
java實(shí)戰(zhàn)小技巧之字符串與容器互轉(zhuǎn)詳解
Java.lang.String是Java的字符串類. Srting是一個(gè)不可變對(duì)象,下面這篇文章主要給大家介紹了關(guān)于java實(shí)戰(zhàn)小技巧之字符串與容器互轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下2021-08-08
Java應(yīng)用程序開發(fā)學(xué)習(xí)之static關(guān)鍵字應(yīng)用
今天小編就為大家分享一篇關(guān)于Java應(yīng)用程序開發(fā)學(xué)習(xí)之static關(guān)鍵字應(yīng)用,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
PostMan如何傳參給@RequestBody(接受前端參數(shù))
這篇文章主要介紹了PostMan如何傳參給@RequestBody(接受前端參數(shù)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10

