Spring mvc結(jié)果跳轉(zhuǎn)方法詳解
ModelAndView
設(shè)置ModelAndView對(duì)象 , 根據(jù)view的名稱 , 和視圖解析器跳到指定的頁(yè)面 .
頁(yè)面 : {視圖解析器前綴} + viewName +{視圖解析器后綴}
<!-- 視圖解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <!-- 前綴 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 后綴 --> <property name="suffix" value=".jsp" /> </bean>
對(duì)應(yīng)的controller類
public class ControllerTest1 implements Controller { public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { //返回一個(gè)模型視圖對(duì)象 ModelAndView mv = new ModelAndView(); mv.addObject("msg","ControllerTest1"); mv.setViewName("test"); return mv; } }
ServletAPI
通過(guò)設(shè)置ServletAPI , 不需要視圖解析器 .
- 通過(guò)HttpServletResponse進(jìn)行輸出
- 通過(guò)HttpServletResponse實(shí)現(xiàn)重定向
- 通過(guò)HttpServletResponse實(shí)現(xiàn)轉(zhuǎn)發(fā)
@Controller public class ResultGo { @RequestMapping("/result/t1") public void test1(HttpServletRequest req, HttpServletResponse rsp) throws IOException { rsp.getWriter().println("Hello,Spring BY servlet API"); } @RequestMapping("/result/t2") public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException { rsp.sendRedirect("/index.jsp"); } @RequestMapping("/result/t3") public void test3(HttpServletRequest req, HttpServletResponse rsp) throws Exception { //轉(zhuǎn)發(fā) req.setAttribute("msg","/result/t3"); req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,rsp); } }
SpringMVC
通過(guò)SpringMVC來(lái)實(shí)現(xiàn)轉(zhuǎn)發(fā)和重定向 - 無(wú)需視圖解析器;
測(cè)試前,需要將視圖解析器注釋掉
@Controller public class ResultSpringMVC { @RequestMapping("/rsm/t1") public String test1(){ //轉(zhuǎn)發(fā) return "/index.jsp"; } @RequestMapping("/rsm/t2") public String test2(){ //轉(zhuǎn)發(fā)二 return "forward:/index.jsp"; } @RequestMapping("/rsm/t3") public String test3(){ //重定向 return "redirect:/index.jsp"; } }
通過(guò)SpringMVC來(lái)實(shí)現(xiàn)轉(zhuǎn)發(fā)和重定向 - 有視圖解析器;
重定向 , 不需要視圖解析器 , 本質(zhì)就是重新請(qǐng)求一個(gè)新地方嘛 , 所以注意路徑問(wèn)題.
可以重定向到另外一個(gè)請(qǐng)求實(shí)現(xiàn)
@Controller public class ResultSpringMVC2 { @RequestMapping("/rsm2/t1") public String test1(){ //轉(zhuǎn)發(fā) return "test"; } @RequestMapping("/rsm2/t2") public String test2(){ //重定向 return "redirect:/index.jsp"; //return "redirect:hello.do"; //hello.do為另一個(gè)請(qǐng)求/ } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringMVC請(qǐng)求/響應(yīng)亂碼問(wèn)題解決方案解析
- SpringMVC接收與響應(yīng)json數(shù)據(jù)的幾種方式
- springmvc處理響應(yīng)數(shù)據(jù)的解析
- Spring MVC請(qǐng)求參數(shù)與響應(yīng)結(jié)果全局加密和解密詳解
- Springmvc獲取前臺(tái)請(qǐng)求數(shù)據(jù)過(guò)程解析
- Springmvc如何實(shí)現(xiàn)向前臺(tái)傳遞數(shù)據(jù)
- SpringMvc響應(yīng)數(shù)據(jù)及結(jié)果視圖實(shí)現(xiàn)代碼
相關(guān)文章
淺析Java如何在并發(fā)環(huán)境下生成一個(gè)只讀的map
這篇文章主要為大家詳細(xì)介紹了Java如何在并發(fā)環(huán)境下生成一個(gè)只讀的map,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04SpringSecurity實(shí)現(xiàn)登陸認(rèn)證并返回token方式
這篇文章主要介紹了SpringSecurity實(shí)現(xiàn)登陸認(rèn)證并返回token方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03java實(shí)現(xiàn)代碼統(tǒng)計(jì)小程序
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)代碼統(tǒng)計(jì)小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09SpringBoot導(dǎo)入mail依賴報(bào)錯(cuò)問(wèn)題解決
這篇文章主要介紹了SpringBoot導(dǎo)入mail依賴報(bào)錯(cuò)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10idea2022創(chuàng)建javaweb項(xiàng)目步驟(超詳細(xì))
本文主要介紹了idea2022創(chuàng)建javaweb項(xiàng)目步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07詳解java中Reference的實(shí)現(xiàn)與相應(yīng)的執(zhí)行過(guò)程
不知道大家知不知道特殊的reference對(duì)象都是被jvm專門(mén)處理的,所以這篇文章就相應(yīng)的工作流程和referencequeue之間的協(xié)作進(jìn)行梳理.有需要的朋友們可以參考借鑒。2016-09-09