SpringMVC-响应数据和结果视图 返回值分类 转发和重定向 ResponseBody 响应 JSON 数据

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数据互相转换