techukraine.net techukraine.net Як створити власні сторінки помилок завантаження Spring за допомогою Thymeleaf

Як створити власні сторінки помилок завантаження Spring за допомогою Thymeleaf

| | 0 Comments| 12:39 AM
Categories:

Програмне забезпечення має помилки. Навіть у найкращих програмах іноді виникають помилки. Тому в кожній програмі повинні бути певні механізми обробки помилок.

Spring Boot надає стандартну сторінку помилок Whitelabel як компонент автоматичної конфігурації для обробки помилок. Тим не менш, очікується, що розробники створять спеціальну сторінку помилок, яка замінить сторінку помилок Whitelabel. У цій статті ви дізнаєтеся, як налаштувати сторінку помилок для своїх програм Spring Boot.

Сторінка помилки Whitelabel Spring Boot

Коли програма Spring Boot стикається з помилкою, вона запитує URL-адресу /error. Якщо в цьому місці перегляду немає, відображається сторінка помилки Whitelabel:

На сторінці помилки Whitelabel зазначено дату й час помилки разом із відповідним часовим поясом. Крім того, у ньому вказується тип помилки та відповідний код. На сторінці Whitelabel зазначено, що це помилка 404 (сторінка не знайдена). Це пов’язано з тим, що приклад програми не має зіставлення для URL-адреси «/products».

  Як рутувати міжнародний Samsung Galaxy S5 (SM-G900F)

Більшість інформації, представленої на сторінці помилок Whitelabel, взято з конкретних атрибутів помилок. Перегляд помилок Spring Boot має доступ до таких атрибутів помилок:

  • помилка: причина помилки.
  • timestamp: дата й час виникнення помилки.
  • status: код статусу помилки.
  • винятки: ім’я класу кореневого винятку (якщо помилка є результатом винятку).
  • повідомлення: повідомлення про виняток (якщо помилка є результатом виключення).
  • помилки: будь-які результати виняткової ситуації BindingResult (якщо помилка є результатом виняткової ситуації).
  • трасування: трасування стеку винятків (якщо помилка є результатом винятку).
  • шлях: URL-шлях, де сталася помилка.

Створення сторінки помилок за допомогою Thymeleaf

Ваша програма Spring Boot повинна мати одну сторінку помилки, збережену в шаблоні «помилка». Розширення цього шаблону буде відрізнятися залежно від технології шаблону, яку ви вирішите використовувати. Наприклад, якщо ви виберете шаблон Java Server Pages (JSP), ім’я файлу має бути error.jsp.

Однак цей зразок програми Spring Boot використовує механізм шаблонів Thymeleaf. Отже, назва шаблону error.html. Ви повинні постійно розміщувати свій шаблон помилки в папці шаблонів у каталозі ресурсів разом із усіма іншими файлами шаблонів.

  Terraform проти Kubernetes: порівняння

Файл error.html

 <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
 <head>
     <title> Error</title>
     <link rel="stylesheet" th:href="https://wilku.top/how-to-create-custom-spring-boot-error-pages-with-thymeleaf/@{/css/style.css}"/>
 </head>
 <body th:style="'background: url(/images/background1.jpg)
 no-repeat center center fixed;'">
     <div class="container" >
       <h1>An error has occurred...</h1>
       <img th:src="https://wilku.top/how-to-create-custom-spring-boot-error-pages-with-thymeleaf/@{/images/error-icon.png}"
       width="100px" height="100px" />
       <p>There seems to be a problem with the page you requested
       (<span th:text="${path}"></span>).</p>
       <p th:text="${'The status code is ' + status
       + ', which means that the page was ' + error + '.'}"></p>
       <p th:text="${'Further details: ' + message + '.'}"></p>
       <a class="btn" href="https://wilku.top/home">Back to home</a>
     </div>
 </body>
</html>

Налаштована сторінка помилок виконує кілька важливих завдань. Він оголошує про виникнення помилки. Згодом він демонструє HTTP-запит, який викликав помилку. Крім того, він надає користувачеві код стану, пов’язаний з помилкою. Але якщо користувач не знайомий із кодами стану, сторінка також пояснює значення коду через атрибут помилки.

  Усе про скинуту шпильку на Картах Google

Останній рядок тексту представляє користувачеві повідомлення у випадку винятку. Потім посилання в кінці дозволяє користувачеві повернутися на домашню сторінку. Файл error.html використовує таблицю стилів CSS і два зображення для створення такого перегляду:

Зробіть свою сторінку помилок зручною для користувача

Основна мета сторінки помилки – повідомити користувача про певну помилку. Однак ця сторінка помилки все ще є частиною програми. Тому дуже важливо переконатися, що сторінка помилок також є зручною для користувача.

Це означатиме вибір використання атрибутів помилки, які передають помилку більш простим способом. Отже, ви можете використовувати атрибут path замість атрибута trace, який є набагато складнішим і містить деталі, які користувачеві не потрібно знати.

Ви також не хочете надавати випадковому користувачеві надмірну інформацію про внутрішню роботу вашої програми, оскільки це може поставити під загрозу безпеку програми.