基于HTTP响应代码的控制器方法的不同响应

时间:2014-04-07 17:59:50

标签: spring spring-mvc exception-handling

如何编写一个控制器方法,该方法可以返回View或HTTP响应状态代码,如果它的200然后再查看响应状态代码。

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

我希望在401,403,500等情况下处理。只应返回状态代码而不是查看。

3 个答案:

答案 0 :(得分: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?

答案 1 :(得分:0)

您还可以查看@ResponseStatus注释以及ResponseEntity(更多动态场景)

答案 2 :(得分:0)

我远没有建议您应该使用Exceptions进行流量控制 - 但这些HTTP状态是错误和异常。因此,您可能希望从控制器方法中抛出业务异常,然后使用@ExceptionHandler s。

处理这些异常

您还可以定位控制器的子集,并使用@ControllerAdvice协助处理异常处理的人。