SpringMVC響應視圖和結果視圖詳解
1、返回字符串,Model傳輸數據
/** * 返回String * @param model * @return */ @RequestMapping("/testString") public String testString(Model model){ System.out.println("testString方法執行瞭..."); // 模擬從數據庫中查詢出User對象 User user = new User(); user.setUsername("美美"); user.setPassword("123"); user.setAge(30); // model對象 model.addAttribute("user",user); return "success"; }
2、void(不經常使用)
/** * 是void * 請求轉發一次請求,不用編寫項目的名稱 */ @RequestMapping("/testVoid") public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("testVoid方法執行瞭..."); // 編寫請求轉發的程序 // request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response); // 重定向 // response.sendRedirect(request.getContextPath()+"/index.jsp"); // 設置中文亂碼 response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); // 直接會進行響應 response.getWriter().print("你好"); return; }
3、返回ModelAndView完成跳轉頁面和傳輸數據
/** * 返回ModelAndView * @return */ @RequestMapping("/testModelAndView") public ModelAndView testModelAndView(){ // 創建ModelAndView對象 ModelAndView mv = new ModelAndView(); System.out.println("testModelAndView方法執行瞭..."); // 模擬從數據庫中查詢出User對象 User user = new User(); user.setUsername("小鳳"); user.setPassword("456"); user.setAge(30); // 把user對象存儲到mv對象中,也會把user對象存入到request對象 mv.addObject("user",user); // 跳轉到哪個頁面 mv.setViewName("success"); return mv; }
4、forward轉發
/** * 使用關鍵字的方式進行轉發 * @return */ @RequestMapping("/testForwardOrRedirect") public String testForwardOrRedirect(){ System.out.println("testForwardOrRedirect方法執行瞭..."); // 請求的轉發 return "forward:/WEB-INF/pages/success.jsp"; }
5、redirect重定向
/** * 使用關鍵字重定向 * @return */ @RequestMapping("/testForwardOrRedirect") public String testForwardOrRedirect(){ System.out.println("testForwardOrRedirect方法執行瞭..."); // 重定向 return "redirect:/index.jsp"; }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 淺談springMVC中controller的幾種返回類型
- SpringMVC中Controller類數據響應的方法
- 使用springmvc配置視圖解析器和重定向方式
- SpringMVC域對象共享數據示例詳解
- Spring MVC數據響應處理詳解