2017-01-04 2 views
0

Я создаю web application с использованием Spring Boot. В моем controller могут возникнуть ситуации, когда происходят некоторые errors. Мне нужно, чтобы уведомил моих конечных пользователей об этих ошибках.Весенний бот Отображаемое сообщение об ошибке для разных исключений

Например, может быть error при сохранении данных в базе данных. В этом случае мне нужно отобразить собственное сообщение об ошибке.

Также может быть выброшено сообщение exception, необходимо сообщать правильное сообщение об ошибке.

Я прочитал об использовании ExceptionHandler для этого. Проблема заключается в таком подходе, мне нужно создать разные представления (html-файлы, так как я использую Thymeleaf) с сообщением об ошибке. Поэтому для каждого условия исключения/ошибки мне нужно будет создать отдельный файл HTML с жестко запрограммированным сообщением об ошибке.

В любом случае может быть использована одна страница error.html и сообщение об ошибке на этой странице настроено в зависимости от точной ошибки, которая произошла в controller?

ответ

0

Вы можете использовать Springs MVC средства Model View Controlling. Итак, на вашей странице, где у вас есть html для сохранения данных в вашей базе данных, вы можете создать html, который отображается только в том случае, если вам это нужно. Например, с tymeleafsth:switch или th:if. find more...

В вашей бизнес-логике вы можете создать простой pojo, например ExecptionMessage, где вы установили свое сообщение о выполнении. Когда выполняется реальное исполнение, вы можете установить конкретное сообщение об исключении для этого объекта. В вашем controller теперь вы можете установить объект ExecptionMessage на ваш взгляд.

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

model Это теперь доступен в view и вы можете deceide показать сообщение или нет. Поэтому нет необходимости создавать новый html для каждого сообщения об ошибке. Но вы можете подумать о создании thymeleaf template, чтобы создать html только один раз и включить fragment, если необходимо. find more...

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

Спасибо, это было полезно! – Reshma