Spring MVC 3 - 如何使用404响应请求?

11

在我的控制器中,我进行权限检查以查看用户是否能够执行某个操作。如果他们不能,我希望返回一个404错误。

我该如何告诉Spring返回404错误?


5
请参考https://dev59.com/SHI95IYBdhLWcg3w-DL0。该链接解释了如何在Spring MVC控制器中触发404错误。 - axtavt
@axtavt 这个页面上的答案就是我所使用的。谢谢。 - Kyle
2
你应该真正地回复一个403。 - Brendan Long
2个回答

21

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

@Controller
public class MyController {

    @ResponseStatus(NOT_FOUND)
    @ExceptionHandler({UnauthorizedException.class})
    public void handle() {
        // ...
    }
}
如果控制器方法抛出UnauthorizedException异常,以上处理程序方法将被调用来处理它并返回404错误。

处理这个问题的方式真是非常流畅。 - Robby Pond
2
在较新版本的Spring中,您可以在控制器中直接抛出NoSuchRequestHandlingMethodException。 - autra

-3
你可以从HttpException派生你的异常,并将404代码路径到基本构造函数。
public class MyNotFoundException : HttpException
{
    public MyNotFoundException(string message, Exception inner)
        : base(404, message, inner)
    {
    }
}

我猜那是Spring.NET - Spring中没有HttpException类。 - skaffman
调用父类构造函数的语法也适用于C#。 - jjmontes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接