【问题标题】:Spring MVC 3 - Respond to request with a 404? [duplicate]Spring MVC 3 - 使用 404 响应请求? [复制]
【发布时间】:2011-01-15 09:06:04
【问题描述】:

在我的控制器中,我进行权限检查以查看用户是否可以执行特定操作。如果他们不能,我想返回 404。

如何告诉 Spring 返回 404?

【问题讨论】:

标签: java spring spring-mvc


【解决方案1】:

您可以抛出异常并在控制器级别的方法中处理它:

@Controller
public class MyController {

    @ResponseStatus(NOT_FOUND)
    @ExceptionHandler({UnauthorizedException.class})
    public void handle() {
        // ...
    }
}

如果任何控制器方法抛出UnauthorizedException.,则将调用上述处理程序方法来处理它并返回404错误。

【讨论】:

  • 真正巧妙的处理方式。
  • 在较新版本的 Spring 上,你可以在你的控制器中抛出 NoSuchRequestHandlingMethodException 我在这里评论,因为它仍然出现在谷歌首页
【解决方案2】:

您可以将异常从 HttpException 和路径 404 代码派生到基本构造函数:

public class MyNotFoundException : HttpException
{
    public MyNotFoundException(string message, Exception inner)
        : base(404, message, inner)
    {
    }
}

【讨论】:

  • 我猜那是 Spring.NET - Spring 中没有 HttpException 类。
  • 调用超类构造函数的语法也是C#。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 2013-02-16
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多