【问题标题】:Spring Boot display custom error message for different exceptionsSpring Boot 显示不同异常的自定义错误消息
【发布时间】:2017-01-04 05:27:20
【问题描述】:

我正在使用Spring Boot 创建一个web application。在我的controller 中,可能会出现一些errors 的情况。我需要通知我的最终用户这些错误。

例如,在将数据保存在数据库中时,可能会有error。在这种情况下,我需要显示自定义错误消息。

有时可能会抛出exception,需要报告适当的用户友好错误消息。

我读到过使用ExceptionHandler 来执行此操作。问题在于这种方法,我需要使用错误消息创建不同的视图(html 文件,因为我使用的是Thymeleaf)。因此,对于每个异常/错误情况,我需要创建一个带有硬编码错误消息的单独 HTML 文件。

是否可以使用单个 error.html 页面并根据 controller 中发生的确切错误自定义该页面中的错误消息?

【问题讨论】:

    标签: spring-boot exception-handling


    【解决方案1】:

    您可以使用Springs MVC,即Model View Controlling。因此,在您拥有将数据保存到数据库的 html 的页面上,您可以创建仅在需要时显示的 html。例如tymeleafsth:switchth:iffind more...

    在您的业务逻辑中,您可以创建一个简单的pojo,如ExecptionMessage,您可以在其中设置异常消息。当一个真正的异常被抛出时,您可以将特定的异常消息设置给这个对象。在您的controller 中,您现在可以将ExecptionMessage 对象设置为您的视图。

    model.addAttribute("execptionMessage", new ExecptionMessage("My Custom message"));
    

    model 现在可在view 中使用,您可以决定是否显示该消息。因此无需为每条错误消息创建一个新的html。但是您可以考虑创建一个thymeleaf template 来创建一次html,并在需要时包含fragmentfind more...

    <div th:include="footer :: copy">...</div>
    

    【讨论】:

    • 谢谢,这很有用!
    猜你喜欢
    • 2020-03-15
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 2011-09-18
    • 2010-11-25
    相关资源
    最近更新 更多