gpt4 book ai didi

java - 使用 Spring Controller 处理错误 404

转载 作者:IT老高 更新时间:2023-10-28 13:55:41 40 4
gpt4 key购买 nike

我使用 @ExceptionHandler 来处理我的 Web 应用程序抛出的异常,在我的情况下,我的应用程序返回 JSON 响应并带有 HTTP status 错误回复客户。

但是,我试图弄清楚如何处理 error 404 以返回与 @ExceptionHandler 处理的 JSON 响应类似的 JSON 响应

更新:

我的意思是,当访问一个不存在的 URL 时

最佳答案

我使用 spring 4.0 和 java 配置。我的工作代码是:

@ControllerAdvice
public class MyExceptionController {
@ExceptionHandler(NoHandlerFoundException.class)
public ModelAndView handleError404(HttpServletRequest request, Exception e) {
ModelAndView mav = new ModelAndView("/404");
mav.addObject("exception", e);
//mav.addObject("errorcode", "404");
return mav;
}
}

在 JSP 中:

    <div class="http-error-container">
<h1>HTTP Status 404 - Page Not Found</h1>
<p class="message-text">The page you requested is not available. You might try returning to the <a href="<c:url value="/"/>">home page</a>.</p>
</div>

对于初始化参数配置:

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
public void customizeRegistration(ServletRegistration.Dynamic registration) {
registration.setInitParameter("throwExceptionIfNoHandlerFound", "true");
}
}

或通过xml:

<servlet>
<servlet-name>rest-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>throwExceptionIfNoHandlerFound</param-name>
<param-value>true</param-value>
</init-param>
</servlet>

另请参阅:Spring MVC Spring Security and Error Handling

关于java - 使用 Spring Controller 处理错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13356549/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com