默認的跳轉是請求轉發,直接跳轉到jsp頁面展示
還可以使用框架提供的關鍵字redirect,進行一個重定向操作,包括重定向頁面和重定向action,使用框架提供的關鍵字forward,進行服務器內部轉發操作,包括轉發頁面和轉發action。
當使用redirect:和forward:關鍵字時,視圖解析器中前綴后綴的拼接就無效了。
頁面部分:
<!--ctrl+d:復制當前行-->
<a href="${pageContext.request.contextPath}/one.action">請求轉發頁面(默認)</a><br>
<a href="${pageContext.request.contextPath}/two.action">請求轉發action</a><br>
<a href="${pageContext.request.contextPath}/three.action">重定向頁面</a><br>
<a href="${pageContext.request.contextPath}/four.action">重定向action</a><br>
Controller部分:
@Controller
public class JumpAction {@RequestMapping("/one")public String one(){System.out.println("請求轉發頁面(默認)");//以前的訪問方式//request.getRequestDispatcher("/admin/main.jsp").forward(request,response);//觀察地址欄的變化: http://localhost:8080/one.action//return "main"; //默認的訪問方式是自動拼接前綴和后綴進行跳轉return "forward:/fore/user.jsp";//只要使用了forward:就可以屏蔽前綴和后綴的拼接,自己手工構建返回的全部路徑+.jsp}@RequestMapping("/two")public String two(){System.out.println("請求轉發action");//觀察地址欄的變化: http://localhost:8080/two.actionreturn "forward:/other.action"; //不使用forward:,就會是這樣的路徑 /admin/other.action/.jsp}@RequestMapping("/three")public String three(){System.out.println("重定向頁面");//觀察地址欄的變化 http://localhost:8080/admin/main.jspreturn "redirect:/admin/main.jsp";//只要使用了redirect:就可以屏蔽前綴和后綴的拼接}@RequestMapping("/four")public String four(){System.out.println("重定向action");//觀察地址欄的變化 http://localhost:8080/other.actionreturn "redirect:/other.action";//只要使用了redirect:就可以屏蔽前綴和后綴的拼接}
}
2.7 SpringMVC支持的默認參數類型
這些類型只要寫在方法參數中就可以使用了。
1)HttpServletRequest 對象
2)HttpServletResponse 對象
3)HttpSession 對象
4)Model/ModelMap 對象
5)Map<String,Object>對象
注意Model,Map,ModelMap都使用的是request請求作用域,意味著只能是請求轉發后,頁面才可以得到值。