2014-04-07 48 views
1

如何編寫一個控制器方法,該方法可以根據返回視圖或HTTP響應狀態代碼,然後查看其他響應狀態代碼。基於HTTP響應代碼的控制器方法的不同響應

@RequestMapping(value="/",method=RequestMethod.GET) 
public String showLanding() 
{ 
    return View.Landing;  
} 

我想處理的情況下401,403,500等只是應該返回狀態代碼而不是視圖。

回答

0

要返回403-未經授權狀態碼,

@RequestMapping(value="/",method=RequestMethod.GET) 
public String showLanding() 
{ 
    return HttpStatus.UNAUTHORIZED;  
} 

看到這個:

  1. http://docs.spring.io/spring/docs/3.1.x/javadoc-api/org/springframework/http/HttpStatus.html?is-external=true
  2. How to respond with HTTP 400 error in a Spring MVC @ResponseBody method returning String?
+0

您可能想要修復您的返回類型。 –

+0

不起作用。不兼容的類型。 – jikuja

0

你也可以檢查出@ResponseStatus annotati以及ResponseEntity(針對更多動態場景)

+0

但是我一次只能做一個..對嗎?正如我所說我想查看或回覆狀態代碼 –

+0

我不確定這是個好主意。也許你應該分開控制器的方法... – geoand

0

我遠不會建議您使用Exceptions進行流量控制 - 但這些HTTP狀態是錯誤和異常。因此,您可能想從控制器方法中拋出業務異常,然後使用@ExceptionHandler來處理這些異常。

您還可以定位控制器的子集,並使用@ControllerAdvice幫助那些通過異常處理。

相關問題