Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC 3-使用404响应请求?_Java_Spring_Spring Mvc - Fatal编程技术网

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

Java Spring MVC 3-使用404响应请求?,java,spring,spring-mvc,Java,Spring,Spring Mvc,在我的控制器中,我执行权限检查,以查看用户是否可以执行特定操作。如果他们不能,我想退回404 如何告诉Spring返回404?您可以从HttpException派生异常,并将404代码路径发送到基本构造函数: public class MyNotFoundException : HttpException { public MyNotFoundException(string message, Exception inner) : base(404, message, i

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


如何告诉Spring返回404?

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

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

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

@Controller
public class MyController {

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

如果任何控制器方法抛出未经授权的异常。,将调用上述处理程序方法来处理该异常并返回404错误

请参阅@axtavt本页上的答案是我使用的。谢谢你真的应该用403来回答。我猜那是Spring.NET-Spring中没有
HttpException
类。调用超类构造函数的语法也是C#。处理这个问题的方法非常巧妙。在Spring的新版本上,您可以在这里的控制器I注释中抛出NoSuchRequestHandlingMethodException,因为它仍然出现在google的第一页中