我有一個控制器,在某些情況下,如果請求是Restful,並且在某些情況下應該返回ModelAndView
,它應該返回ResponseEntity<>
。單個Spring MVC控制器的多種返回類型
有沒有辦法可以做到這一點?我想我可以拋出異常取決於返回類型是什麼,然後有一個ExceptionHandler
返回所需的確切類型。
例如,拋出一個ReturnResponseEntityException
再搭上這在ExceptionHandler
並返回ResponseEntity
,而在另一種情況下拋出ReturnModelAndViewException
。
但是,我意識到這是行不通的,因爲ModelAndView
和ResponseEntity
需要某些只在原始控制器中可用的屬性,而不是在異常處理程序中可用。有沒有辦法將屬性傳遞給異常處理程序?
另外,是否有可能從控制器返回對象,Spring將能夠處理ResponseEntity
或ModelAndView
,這取決於我返回的對象的類別?
或者有另一種方法來實現這一目標嗎?
爲什麼要使用異常呢?你可以使用一個簡單的'if-then-else'來返回所需的對象。 – Sachin
因爲在方法簽名中,您只有一個返回類型。你不能返回那種不是那種返回類型的東西 – rurounisuikoden
爲什麼有相同的端點做不同的事情?這是糟糕的設計。 – dambros