Controller方法的返回值能夠有如下幾種:json
一、返回ModelAndViewapp
返回ModelAndView時最多見的一種返回結果。須要在方法結束的時候定義一個ModelAndView對象,並對Model和View分別進行設置。spa
二、返回String對象
1):字符串表明邏輯視圖名utf-8
真實的訪問路徑=「前綴」+邏輯視圖名+「後綴」字符串
注意:若是返回的String表明邏輯視圖名的話,那麼Model的返回方式以下:get
public String testController(Model model){
model.addAttribute(attrName,attrValue);//至關於ModelAndView的addObject方法
return "邏輯視圖名";
}servlet
2):表明redirect重定向it
redirect的特色和servlet同樣,使用redirect進行重定向那麼地址欄中的URL會發生變化,同時不會攜帶上一次的requestio
案例:
public String testController(Model model){
return "redirect:path";//path表明重定向的地址
}
3):表明forward轉發
經過forward進行轉發,地址欄中的URL不會發生改變,同時會將上一次的request攜帶到寫一次請求中去
案例:
public String testController(Model model){
return "forward:path";//path表明轉發的地址
}
三、返回void
返回這種結果的時候能夠在Controller方法的形參中定義HTTPServletRequest和HTTPServletResponse對象進行請求的接收和響應
1)使用request轉發頁面
request.getRequestDispatcher("轉發路徑").forward(request,response);
2)使用response進行頁面重定向
response.sendRedirect("重定向路徑");
3)也可使用response指定響應結果
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter.write("json串");
以上三種返回值沒有什麼重要和不重要的分別,通常來講都會使用到, 只不過有的時候使用的方式會有一些細微的差異