三、Springmvc之Controller層方法返回值
阿新 • • 發佈:2018-11-05
ItemController
@Controller public class ItemController { @Autowired private ItemService itemService; /** * 1.ModelAndView 無敵的,帶著資料,返回檢視路徑 * 2.String 返回檢視路徑,model帶資料 * 3.void ajax 請求合適 json格式資料(response 非同步請求使用) * @return * @throws IOException * @throws ServletException */ /** * void- */ @RequestMapping(value="/item/itemList.action") public void itemList(Model model,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ List<Items> list = itemService.selectItemList(); model.addAttribute("itemList", list); request.getRequestDispatcher("/itemList").forward(request, response); } /** * String */ /* @RequestMapping(value="/item/itemList.action") public String itemList(Model model){ List<Items> list = itemService.selectItemList(); model.addAttribute("itemList", list); return "itemList"; }*/ /** * ModelAndView */ //顯示所有商品 /* @RequestMapping(value="/item/itemList.action") public ModelAndView itemList(){ //從Mysql查詢資料 List<Items> list = itemService.selectItemList(); System.out.println(list); ModelAndView mv = new ModelAndView(); //新增資料 mv.addObject("itemList", list); mv.setViewName("itemList"); return mv; }*/ }
返回字串型別可分為:
1、邏輯檢視名
//指定邏輯檢視名,經過檢視解析器解析為jsp物理路徑:/WEB-INF/jsp/itemList.jsp return "itemList";
2、Request重定向
/** * 更新商品 * * @param item * @return */ @RequestMapping("updateItem") public String updateItemById(Item item) { // 更新商品 this.itemService.updateItemById(item); // 修改商品成功後,重定向到商品編輯頁面 // 重定向後瀏覽器位址列變更為重定向的地址, // 重定向相當於執行了新的request和response,所以之前的請求引數都會丟失 // 如果要指定請求引數,需要在重定向的url後面新增 ?itemId=1 這樣的請求引數 return "redirect:/itemEdit.action?itemId=" + item.getId(); }
3、forward轉發
/** * 更新商品 * * @param item * @return */ @RequestMapping("updateItem") public String updateItemById(Item item) { // 更新商品 this.itemService.updateItemById(item); // 修改商品成功後,繼續執行另一個方法 // 使用轉發的方式實現。轉發後瀏覽器位址列還是原來的請求地址, // 轉發並沒有執行新的request和response,所以之前的請求引數都存在 return "forward:/itemEdit.action"; } //結果轉發到editItem.action,request可以帶過去 return "forward: /itemEdit.action";