Spring mvc結(jié)果跳轉(zhuǎn)方法詳解
ModelAndView
設(shè)置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>
對應(yīng)的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
通過設(shè)置ServletAPI , 不需要視圖解析器 .
- 通過HttpServletResponse進(jìn)行輸出
- 通過HttpServletResponse實現(xiàn)重定向
- 通過HttpServletResponse實現(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
通過SpringMVC來實現(xiàn)轉(zhuǎn)發(fā)和重定向 - 無需視圖解析器;
測試前,需要將視圖解析器注釋掉
@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";
}
}
通過SpringMVC來實現(xiàn)轉(zhuǎn)發(fā)和重定向 - 有視圖解析器;
重定向 , 不需要視圖解析器 , 本質(zhì)就是重新請求一個新地方嘛 , 所以注意路徑問題.
可以重定向到另外一個請求實現(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為另一個請求/
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java判斷范圍型的數(shù)據(jù)是否存在重疊的方法
遇到了個問題,同一天可以輸入多個時間段,但是每個時間段的時間不能出現(xiàn)重疊,這不就是判斷數(shù)據(jù)返回是否有重疊的變種嗎,所以本文給大家介紹了Java判斷范圍型的數(shù)據(jù)是否存在重疊的方法,需要的朋友可以參考下2024-07-07
Spring中的@RestControllerAdvice注解使用方法解析
這篇文章主要介紹了Spring中的@RestControllerAdvice注解使用方法解析,@RestControllerAdvice是Controller的增強(qiáng) 常用于全局異常的捕獲處理 和請求參數(shù)的增強(qiáng),需要的朋友可以參考下2024-01-01
基于Spring AMQP實現(xiàn)消息隊列的示例代碼
Spring AMQP作為Spring框架的一部分,是一套用于支持高級消息隊列協(xié)議(AMQP)的工具,AMQP是一種強(qiáng)大的消息協(xié)議,旨在支持可靠的消息傳遞,本文給大家介紹了如何基于Spring AMQP實現(xiàn)消息隊列,需要的朋友可以參考下2024-03-03

