SpringMVC后端Controller頁面跳轉(zhuǎn)的三種方式匯總
一、前言
常見的Web開發(fā)中,我們在使用SpringMVC框架時,經(jīng)常遇到多種不同情況下不同的返回方式,有的多種返回頁面的方式,也有的是多種返回數(shù)據(jù)到前端的方式
這篇文章主要總結(jié)常見Web開發(fā)中針對不同情況返回頁面的方式。
二、根據(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 對象進(jìn)行跳轉(zhuǎn)
1、返回對象 ModelAndView --- 返回 jsp 頁面
/** * description: 返回對象 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、返回對象 ModelAndView --- 服務(wù)端轉(zhuǎn)發(fā)
/** * description: 返回對象 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、返回對象 ModelAndView --- 重定向
/** * description: 返回對象 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é)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán)
SpringSecurity是一個強(qiáng)大且靈活的身份驗(yàn)證和訪問控制框架,本文主要介紹了SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán),具有一定的參考價值,感興趣的可以了解一下2024-07-07PowerJob的IdGenerateService工作流程源碼解讀
這篇文章主要為大家介紹了PowerJob的IdGenerateService工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01springboot整合xxl-job實(shí)現(xiàn)分布式定時任務(wù)的過程
XXL-JOB是一個分布式任務(wù)調(diào)度平臺,其核心設(shè)計目標(biāo)是開發(fā)迅速、學(xué)習(xí)簡單、輕量級、易擴(kuò)展,這篇文章主要介紹了springboot整合xxl-job分布式定時任務(wù),需要的朋友可以參考下2022-08-08java中isEmpty和isBlank的區(qū)別小結(jié)
Java中的isEmpty和isBlank都是用來判斷字符串是否為空的方法,但在不同的情況下有所區(qū)別,具有一定的參考價值,感興趣的可以了解一下2023-09-09java實(shí)現(xiàn)文本框和文本區(qū)的輸入輸出
這篇文章主要介紹了java實(shí)現(xiàn)文本框和文本區(qū)的輸入輸出的方法和具體示例,有需要的小伙伴可以參考下。2015-06-06java實(shí)戰(zhàn)小技巧之字符串與容器互轉(zhuǎn)詳解
Java.lang.String是Java的字符串類. Srting是一個不可變對象,下面這篇文章主要給大家介紹了關(guān)于java實(shí)戰(zhàn)小技巧之字符串與容器互轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下2021-08-08Java應(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)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12PostMan如何傳參給@RequestBody(接受前端參數(shù))
這篇文章主要介紹了PostMan如何傳參給@RequestBody(接受前端參數(shù)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10