1. 程式人生 > >SpringMVC-響應數據和結果視圖

SpringMVC-響應數據和結果視圖

spring 解析 通過 請求轉發 set 名稱 body view forward

返回值分類

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數據互相轉換

SpringMVC-響應數據和結果視圖