如何編寫一個控制器方法,該方法可以根據返回視圖或HTTP響應狀態代碼,然後查看其他響應狀態代碼。基於HTTP響應代碼的控制器方法的不同響應
@RequestMapping(value="/",method=RequestMethod.GET)
public String showLanding()
{
return View.Landing;
}
我想處理的情況下401,403,500等只是應該返回狀態代碼而不是視圖。
如何編寫一個控制器方法,該方法可以根據返回視圖或HTTP響應狀態代碼,然後查看其他響應狀態代碼。基於HTTP響應代碼的控制器方法的不同響應
@RequestMapping(value="/",method=RequestMethod.GET)
public String showLanding()
{
return View.Landing;
}
我想處理的情況下401,403,500等只是應該返回狀態代碼而不是視圖。
要返回403-未經授權狀態碼,
@RequestMapping(value="/",method=RequestMethod.GET)
public String showLanding()
{
return HttpStatus.UNAUTHORIZED;
}
看到這個:
你也可以檢查出@ResponseStatus annotati以及ResponseEntity(針對更多動態場景)
但是我一次只能做一個..對嗎?正如我所說我想查看或回覆狀態代碼 –
我不確定這是個好主意。也許你應該分開控制器的方法... – geoand
我遠不會建議您使用Exceptions進行流量控制 - 但這些HTTP狀態是錯誤和異常。因此,您可能想從控制器方法中拋出業務異常,然後使用@ExceptionHandler來處理這些異常。
您還可以定位控制器的子集,並使用@ControllerAdvice幫助那些通過異常處理。
您可能想要修復您的返回類型。 –
不起作用。不兼容的類型。 – jikuja