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";