返回值分类
1. 字符串
controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。
2. void
在 controller 方法形参上可以定义 request 和 response,使用 request 或 response 指定响应结果
1、使用 request 转向页面
2、也可以通过 response 页面重定向
3、也可以通过 response 指定响应结果
3. ModelAndView
ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图
- 方法
-
addObject(String attributeName,Object attributeValue)
添加模型到该对象中,作用类似于request对象的setAttribute方法的作用、
${requestScope.attributeName} -
setView(String viewName)
设置逻辑视图名称,视图解析器会根据名称前往指定的视图
-
转发和重定向
forward转发
- 如果用了 formward:则路径必须写成实际视图 url,不能写逻辑视图。
- 它相当于“request.getRequestDispatcher("url").forward(request,response)”
- 使用请求转发,既可以转发到 jsp,也可以转发到其他的控制器方法
redirect重定向
- 它相当于“response.sendRedirect(url)”
- 如果是重定向到 jsp 页面,则 jsp 页面不能写在 WEB-INF 目录中,否则无法找到
ResponseBody 响应 JSON 数据
- 该注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的数据如:json,xml 等,通过 Response 响应给客户端
- Springmvc 默认用 MappingJacksonHttpMessageConverter 对 json 数据进行转换,需要加入jackson 的包(3个)
- POJO对象和JSON数据互相转换