1. 程式人生 > >成功請求到後臺,頁面卻報錯404

成功請求到後臺,頁面卻報錯404

今天在學看springboot的入門案例,看完後就動手開始練手,就遇到了請求下面的問題:

前臺請求成功傳送到後面,並在後臺處理完了,但頁面卻報錯404,查了好一會資料發現:

原因是controller忘記寫返回狀態碼@responsebody,spring對返回對映值時找不到對應的檢視,報錯404。

延伸:

@responsebody表示該方法的返回結果直接寫入HTTP response body中。
它的使用情況如下:
1、一般在非同步獲取資料時使用,在使用@RequestMapping後,返回值通常解析為跳轉路徑,加上@responsebody後返回結果不會被解析為跳轉路徑,而是直接寫入HTTP response body中。比如非同步獲取json資料,加上@responsebody後,會直接返回json資料。


2、一般是指定要response 的type。比如json 或 xml 可以直接用jackson或jaxb的包,然後就可以自動返回了,xml中也無需多的配置,就可以使用。


好處是:GET模式下,這裡使用了@PathVariable繫結輸入引數,非常適合Restful風格。因為隱藏了引數與路徑的關係,可以提升網站的安全性,靜態化頁面,降低惡意攻擊風險。
POST模式下,使用@RequestBody繫結請求物件,Spring會幫你進行協議轉換,將Json、Xml協議轉換成你需要的物件。
@ResponseBody可以標註任何物件,由Srping完成物件——協議的轉換。


壞處是:返回之前,若前端編碼格式不一致,很容易導致亂碼。