Spring mvc結果跳轉方法詳解
ModelAndView
設置ModelAndView對象 , 根據(jù)view的名稱 , 和視圖解析器跳到指定的頁面 .
頁面 : {視圖解析器前綴} + viewName +{視圖解析器后綴}
<!-- 視圖解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <!-- 前綴 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 后綴 --> <property name="suffix" value=".jsp" /> </bean>
對應的controller類
public class ControllerTest1 implements Controller { public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { //返回一個模型視圖對象 ModelAndView mv = new ModelAndView(); mv.addObject("msg","ControllerTest1"); mv.setViewName("test"); return mv; } }
ServletAPI
通過設置ServletAPI , 不需要視圖解析器 .
- 通過HttpServletResponse進行輸出
- 通過HttpServletResponse實現(xiàn)重定向
- 通過HttpServletResponse實現(xià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 { //轉發(fā) req.setAttribute("msg","/result/t3"); req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,rsp); } }
SpringMVC
通過SpringMVC來實現(xiàn)轉發(fā)和重定向 - 無需視圖解析器;
測試前,需要將視圖解析器注釋掉
@Controller public class ResultSpringMVC { @RequestMapping("/rsm/t1") public String test1(){ //轉發(fā) return "/index.jsp"; } @RequestMapping("/rsm/t2") public String test2(){ //轉發(fā)二 return "forward:/index.jsp"; } @RequestMapping("/rsm/t3") public String test3(){ //重定向 return "redirect:/index.jsp"; } }
通過SpringMVC來實現(xiàn)轉發(fā)和重定向 - 有視圖解析器;
重定向 , 不需要視圖解析器 , 本質就是重新請求一個新地方嘛 , 所以注意路徑問題.
可以重定向到另外一個請求實現(xiàn)
@Controller public class ResultSpringMVC2 { @RequestMapping("/rsm2/t1") public String test1(){ //轉發(fā) return "test"; } @RequestMapping("/rsm2/t2") public String test2(){ //重定向 return "redirect:/index.jsp"; //return "redirect:hello.do"; //hello.do為另一個請求/ } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
淺析Java如何在并發(fā)環(huán)境下生成一個只讀的map
這篇文章主要為大家詳細介紹了Java如何在并發(fā)環(huán)境下生成一個只讀的map,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-04-04SpringSecurity實現(xiàn)登陸認證并返回token方式
這篇文章主要介紹了SpringSecurity實現(xiàn)登陸認證并返回token方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03idea2022創(chuàng)建javaweb項目步驟(超詳細)
本文主要介紹了idea2022創(chuàng)建javaweb項目步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07詳解java中Reference的實現(xiàn)與相應的執(zhí)行過程
不知道大家知不知道特殊的reference對象都是被jvm專門處理的,所以這篇文章就相應的工作流程和referencequeue之間的協(xié)作進行梳理.有需要的朋友們可以參考借鑒。2016-09-09