controller层通过加上ResponseBody,springmvc就知道该接口是返回数据
通过ModelAndView
public ModelAndView itemsList() throws Exception{
List list = itmesService.list();
//创建ModelAndView视图
ModelAndView modelAndView = new ModelAndView();
//将list数据添加到试图里
modelAndView.addObject("itemList", list);
modelAndView.setViewName("itemList");//设置视图的名称,即返回到哪个页面
//由于有视图解析器的作用,省去了前缀和后缀,其实访问的页面为("/WEB-INF/jsp/itemList.jsp")
return modelAndView;
}
通过ModelAndView实现重定向
public ModelAndView getPage404MV() {
ModelAndView mv = new ModelAndView("redirect:/404.htm");
return mv;
}
要使用forward重定向就只需把redirect换成forward即可,特别的ModelAndView默认使用forward重定向方式。
使用String返回jsp
@RequestMapping("/itemEdit/{id}")
public String itemEdit(@PathVariable("id") Integer id, HttpServletRequest reuqest, Model model) throws Exception{
//String idStr = reuqest.getParameter("id");
Items items = itmesService.findItemsById(id);
//将items数据加到视图中
model.addAttribute("item", items); //这里返回editItem,在@Controller的注解下,回自动添加前缀和后缀,实则是返回到页面("/WEB-INF/jsp/editItem.jsp")
return "editItem";
}
返回void
public void update(Items items,HttpServletRequest request,HttpServletResponse response)throws Exception{
//返回数据,将items的内容放入items里,jsp页面调用items就行
request.setAttribute("items", items);
//返回指定的页面
//如果是void类型的话,就不会去调用SpringMvc的架构,因此无法自动加载视图解析器,所以跳转的
//网页名称应该为其全路径名称
request.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(request, response);
}