gpt4 book ai didi

java - Spring,显示异常或 404 发生错误的 View

转载 作者:行者123 更新时间:2023-12-01 15:27:13 26 4
gpt4 key购买 nike

我有

@Controller
@RequestMapping(value="core/*")
public class CoreController {

public static String exceptionOccurredView = "/core/exceptionOccurred";

@ExceptionHandler(Throwable.class)
public ModelAndView exceptionOccurred(Throwable exception, HttpServletResponse response, HttpServletRequest request) {
ModelAndView mv = new ModelAndView();
mv.setViewName ( exceptionOccurredView );
mv.addObject ( "requestedUrl", Core.getCurrentUrlWithParams() );
mv.addObject ( "exception", exception );

System.out.println( "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + Core.getCurrentUrlWithParams() );
return mv;
}

@RequestMapping
public void test0(HttpServletResponse response, HttpServletRequest request) throws IOException {
throw new IOException();
}

}

它适用于核心 url 下发生的所有异常。

如果我转到网址

localhost:8080/core/test0

显示错误页面。另外,如果我去:

localhost:8080/core/actionDoesNotExist

但如果我使用:

localhost:8080/controllerDoesNotExist/test0

错误不会显示,因为注释 @ExceptionHandler 仅对每个 Controller 有效。

那么如何实现全局的、非 Controller 附加的异常/错误处理程序呢?

最佳答案

一种方法是使用HandlerExceptionResolver的某种实现。

例如,要使用“SimpleMappingExceptionResolver”,请将其放入您的上下文中:

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<map>
<entry key="IOException" value="io-error" />
</map>
</property>
<property name="defaultErrorView" value="default-error"/>
</bean>

通过这种方式,您可以定义从异常到错误页面的全局映射。如果您需要一些更复杂的错误处理,请实现您自己的解析器。

关于java - Spring,显示异常或 404 发生错误的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10011587/

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