Spring mvc結果跳轉方法詳解
阿新 • • 發佈:2020-03-19
ModelAndView
設定ModelAndView物件,根據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實現重定向
- 通過HttpServletResponse實現轉發
@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 { //轉發 req.setAttribute("msg","/result/t3"); req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,rsp); } }
SpringMVC
通過SpringMVC來實現轉發和重定向 - 無需檢視解析器;
測試前,需要將檢視解析器註釋掉
@Controller public class ResultSpringMVC { @RequestMapping("/rsm/t1") public String test1(){ //轉發 return "/index.jsp"; } @RequestMapping("/rsm/t2") public String test2(){ //轉發二 return "forward:/index.jsp"; } @RequestMapping("/rsm/t3") public String test3(){ //重定向 return "redirect:/index.jsp"; } }
通過SpringMVC來實現轉發和重定向 - 有檢視解析器;
重定向,不需要檢視解析器,本質就是重新請求一個新地方嘛,所以注意路徑問題.
可以重定向到另外一個請求實現
@Controller public class ResultSpringMVC2 { @RequestMapping("/rsm2/t1") public String test1(){ //轉發 return "test"; } @RequestMapping("/rsm2/t2") public String test2(){ //重定向 return "redirect:/index.jsp"; //return "redirect:hello.do"; //hello.do為另一個請求/ } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。