【发布时间】:2014-12-01 23:55:26
【问题描述】:
在我的应用程序中,我有一些只允许 POST 的 RequestMappings。如果有人碰巧在该特定路径上触发 GET 请求,他们会收到由容器 (Tomcat) 提供的 405 错误页面。我可以在 web.xml 中创建和定义一个 405 错误页面进行自定义。
我想要的:任何会导致 405 错误的请求都应该在特定的控制器方法中处理。
我尝试过的:
- 一种方法,其中“method = GET”作为提到的每个映射的对应项。这很好用,但需要我为每个只允许 POST 的路径创建一个实际的请求映射和方法。我发现这是不必要的重复和混乱。
- 全局“catch”方法(requestmapping /*):这不起作用,因为 Spring 将 GET 方法视为对仅使用 POST 指定的路径的错误调用
- 一个 ExceptionHandler 注释的方法来处理类 HttpRequestMethodNotSupportedException 的异常:这不起作用。 Spring 似乎完全在其框架代码中抛出并捕获了这个异常。
- 在 web.xml 中指定我自己的 405。这并不完美,因为我想要自定义处理而不是静态错误页面。
【问题讨论】:
标签: java spring spring-mvc