[英]Returning view from Spring MVC @RestController
由於@RestController
是@Controller
和@ResponseBody
組合,我相信如果我想讓我的控制器同時充當MVC和REST控制器,只需要使用@RestController
進行注釋@RestController
可以了。 那是對的嗎?
由於@RestController
是@Controller
和@ResponseBody,
組合@ResponseBody,
我認為它在內部意味着對
@Controller
) @ResponseBody
),但可以根據需要進行更改 @RestController
不用於返回要解析的視圖。 它應該返回將被寫入響應主體的數據,因此包含@ResponseBody
。 當@ResponseBody
已經在類級別上注釋時,您不能在單個處理程序方法上有選擇地禁用@ResponseBody
。
您可以通過返回ModelAndView
來解決該問題,即使在@RestController
,但實際上不應該這樣做 :
@RequestMapping
public ModelAndView renderFooList() {
ModelAndView mav = new ModelAndView("foo/list");
mav.addObject("foos", fooService.getFoos());
return mav;
}
最好為返回視圖的普通處理程序創建單獨的控制器,並為RESTful材質創建REST控制器。 或者用普通的@Controller
注釋類,並將@ResponseBody
放在實際需要的方法上。
@RestController批注,它將此類標記為控制器,其中每個方法均返回域對象/ pojo而不是視圖。 這意味着我們不再使用視圖解析器,不再直接發送html作為響應,而是發送域對象轉換為使用者可以理解的格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.