SpringMVC頁面跳轉的三種方式
阿新 • • 發佈:2018-11-24
SpringMVC頁面跳轉的三種方式
一、 根據 String 字串跳轉
1、返回字串 --- 返回jsp頁面
/** * description: 返回字串 --- 返回jsp頁面 * @return String * @version v1.0 * @author w * @date 2018年10月22日 下午3:01:43 */ @RequestMapping(value={"/forwardJsp"}) public String forwardJsp(Model model){ model.addAttribute("name", "返回jsp頁面"); return "modules/sys/sysLogin"; }
2、返回字串 --- 服務端轉發
/**
* description: 返回字串 --- 服務端轉發
* @return String
* @version v1.0
* @author w
* @date 2018年10月22日 15:41:37
*/
@RequestMapping(value={"/forward"})
public String forward(Model model){
model.addAttribute("name", "服務端轉發");
return "forward:forwardJsp";
}
3、返回字串 --- 客戶端重定向
/**
* description: 返回字串 --- 客戶端重定向
* @return String
* @version v1.0
* @author w
* @date 2018年10月22日 15:41:57
*/
@RequestMapping(value="/redirect")
public String redirect(){
return "redirect:"+"/forward";
}
二、根據 request 或 response 進行跳轉
1、返回 void --- 請求轉發(request轉發)
/** * description: 返回 void --- 請求轉發(request轉發) * @param request * @param response * @throws ServletException * @throws IOException * @version v1.0 * @author w * @date 2018年10月22日 下午3:42:28 */ @RequestMapping(value="/requestForward") public void requestForward(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ request.setAttribute("name", "請求轉發(服務端轉發)"); request.getRequestDispatcher("/forward").forward(request, response); }
2、返回 void --- 重定向 (response)
/**
* description: 返回 void --- 重定向 (response)
* @param response
* @throws IOException
* @version v1.0
* @author w
* @date 2018年10月22日 下午3:43:40
*/
@RequestMapping(value="/response")
public void response(HttpServletResponse response) throws IOException{
response.sendRedirect("/forwardJsp");
}
3、返回 void --- Json字串
/**
* description: 返回 void --- Json字串
* @param response
* @throws IOException
* @version v1.0
* @author w
* @date 2018年10月22日 下午3:43:40
*/
@RequestMapping(value="/responseJson")
public void responseJson(HttpServletResponse response) throws IOException{
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");
}
三、根據 ModelAndView 物件進行跳轉
1、返回物件 ModelAndView --- 返回 jsp 頁面
/**
* description: 返回物件 ModelAndView --- 返回 jsp 頁面
* @return ModelAndView
* @version v1.0
* @author w
* @date 2018年10月22日 15:46:37
*/
@RequestMapping(value="/modelAndViewJsp")
public ModelAndView modelAndViewJsp(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("modules/sys/sysLogin");
return modelAndView;
}
2、返回物件 ModelAndView --- 服務端轉發
/**
* description: 返回物件 ModelAndView --- 服務端轉發
* @return ModelAndView
* @version v1.0
* @author w
* @date 2018年10月22日 15:46:53
*/
@RequestMapping(value="/modelAndViewForward")
public ModelAndView modelAndViewForward(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("forward:/forwardJsp");
return modelAndView;
}
3、返回物件 ModelAndView --- 重定向
/**
* description: 返回物件 ModelAndView --- 重定向
* @return ModelAndView
* @version v1.0
* @author w
* @date 2018年10月22日 15:47:57
*/
@RequestMapping(value="/modelAndViewRedirect")
public ModelAndView modelAndViewRedirect(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("redirect:/forwardJsp");
return modelAndView;
}
參考資料: forward請求轉發和redirect重定向的區別圖解整理