視圖解析器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
- forward:請求轉發(去前字尾)
- redirect:重定向.
基于傳回mv對象
mv.setViewName("str");
- str=”forward : 路徑” 請求轉發到一個jsp中
- str=”forward : controller的映射” 請求轉發到一個controller方法中
- str=”redirect: 路徑” 請求轉發到一個非WEB-INF的jsp
常用:
- str=”redirect : controller的映射” 重定向到一個controller方法中
- str=”XXX” 根據前字尾,請求轉發到 字首/XXX.字尾
1:請求轉發到jsp(預設的)
@RequestMapping("/method1")
public ModelAndView method1(HttpServletRequest req,ModelAndView mv) throws Exception{
//請求轉發到/WEB-INF/view/main.jsp
mv.setViewName("main"); //預設加入前字尾
return mv;
}
//通路非視圖解析器的視圖時,用forward
@RequestMapping("/method3")
public ModelAndView method3(HttpServletRequest req,ModelAndView mv) throws Exception{
mv.setViewName("forward:WEB-INF/view/main.jsp"); //不添加前字尾
return mv;
}
2:請求轉發到controller(必須用forward)
@RequestMapping("/method4")
public ModelAndView method4(HttpServletRequest req,ModelAndView mv) throws Exception{
mv.setViewName("forward:method1");
return mv;
}
3:重定向到controller
@RequestMapping("/method5")
public ModelAndView method5(HttpServletRequest req,ModelAndView mv) throws Exception{
mv.setViewName("redirect:method3");
return mv;
}
4:重定向到jsp
@RequestMapping("/method5")
public ModelAndView method5(HttpServletRequest req,ModelAndView mv) throws Exception{
mv.setViewName("redirect:index.jsp");
return mv;
}
基于傳回字元串
由于傳回是字元串,是以mv的設定将沒有作用,要用req來傳送值
- str=”forward : 路徑” 請求轉發到一個jsp中
- str=”forward : controller的映射” 請求轉發到一個controller方法中
- str=”redirect: 路徑” 請求轉發到一個非WEB-INF的jsp
常用:
- str=”redirect : controller的映射” 重定向到一個controller方法中
- str=”XXX” 根據前字尾,請求轉發到 字首/XXX.字尾
@RequestMapping("method1")
public String method1() throws Exception{
return "redirect:method2";
}
@RequestMapping("method2")
public String method2() throws Exception{
return "forward:WEB-INF/view/main.jsp";
}