一、Controller的返回值
1. 返回ModelAndView
需要方法结束时,定义ModelAndView,将model和view分别进行设置。
2. 返回string
(1)表示返回逻辑视图名。
真正视图(jsp路径)=前缀+逻辑视图名+后缀
(2)redirect重定向
商品修改提交后,重定向到商品查询列表。
redirect重定向特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后重新进行request(request无法共享)
(3)forward转发
通过forward进行页面转发,浏览器地址栏url不变,request可以共享。
3. 返回void
在controller方法形参上可以定义request和response,使用request或response指定响应结果:
(1)使用request转向页面,如下:
request.getRequestDispatcher("页面路径").forward(request, response);
(2)也可以通过response页面重定向:
response.sendRedirect("url")
(3)也可以通过response指定响应结果,例如响应json数据如下:
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");
二、数据回显
(1)pojo回显
springmvc默认对pojo数据进行回显。
pojo数据传入controller方法后,springmvc自动将pojo数据放到request域,key等于pojo类型(首字母小写)
使用@ModelAttribute指定pojo回显到页面在request中的key
(2)@ModelAttribute还可以将方法的返回值传到页面
页面上可以得到itemTypes数据
(3)使用最简单方法使用model,可以不用@ModelAttribute
(4)简单数据类型的回显
使用最简单方法使用model
model.addAttribute("id", id);