Страниците с грешки с бели етикети изглеждат тъпи и могат да повлияят негативно на потребителското изживяване. Научете как да създавате персонализирани страници за грешки с помощта на Thymeleaf.
Софтуерът изпитва грешки. Дори най-добрите приложения ще срещнат грешки в даден момент. Следователно всяко приложение трябва да има въведени механизми за обработка на грешки.
Spring Boot предоставя страница за грешки по подразбиране Whitelabel като компонент от своята автоматична конфигурация за обработка на грешки. Въпреки това се очаква разработчиците да създадат персонализирана страница за грешка, която да замени страницата за грешка на Whitelabel. В тази статия ще научите как да персонализирате страницата за грешка за вашите Spring Boot приложения.
Страница за грешка на Whitelabel на Spring Boot
Когато Spring Boot приложение срещне грешка, то изисква /error URL адрес. Ако няма изглед на това място, той показва страницата за грешка на Whitelabel:
Страницата за грешка на Whitelabel посочва датата и часа на грешката, заедно със съответната часова зона. Освен това той посочва типа грешка и свързания с нея код. Страницата на Whitelabel посочва това
това е грешка 404 (Страницата не е намерена). Това е така, защото примерното приложение няма съпоставяне за URL адреса „/products“.Повечето от информацията, представена на страницата за грешка на Whitelabel, е взета от специфични атрибути на грешка. Изгледът за грешка на Spring Boot има достъп до следните атрибути на грешка:
- грешка: причината за грешката.
- клеймо за време: датата и часа на възникване на грешката.
- състояние: кодът на състоянието на грешката.
- изключение: името на класа на основното изключение (ако грешката е резултат от изключение).
- съобщение: съобщението за изключение (ако грешката е резултат от изключение).
- грешки: Всички резултати от изключение BindingResult (ако грешката е резултат от изключение).
- следа: трасирането на стека на изключението (ако грешката е резултат от изключение).
- път: URL пътят, където възниква грешката.
Създаване на страница за грешка с Thymeleaf
Вашето приложение Spring Boot трябва да има една страница за грешка, съхранена в шаблон „грешка“. Разширението на този шаблон ще варира в зависимост от технологията на шаблона, която решите да използвате. Например, ако изберете шаблон на Java Server Pages (JSP), името на файла трябва да бъде грешка.jsp.
Въпреки това, това примерно приложение Spring Boot използва машината за шаблони Thymeleaf. И така, името на шаблона е error.html. Трябва постоянно да поставяте своя шаблон за грешка в шаблон папка, под ресурси директория с всички ваши други шаблонни файлове.
Файлът error.html
html>
<htmlxmlns: th="http://www.thymeleaf.org">
<head>
<title> Errortitle>
<linkrel="stylesheet"th: href="@{/css/style.css}"/>
head>
<bodyth: style="'background: url(/images/background1.jpg)
no-repeat center center fixed;'">
<divclass="container" >
<h1>An error has occurred...h1>
<imgth: src="@{/images/error-icon.png}"
width="100px" height="100px" />
<p>There seems to be a problem with the page you requested
(<spanth: text="${path}">span>).p>
<pth: text="${'The status code is ' + status
+ ', which means that the page was ' + error + '.'}">p>
<pth: text="${'Further details: ' + message + '.'}">p>
<aclass="btn"href="/home">Back to homea>
div>
body>
html>
Персонализираната страница за грешка изпълнява няколко важни задачи. Той декларира появата на грешка. Впоследствие се демонстрира HTTP заявката което задейства грешката. Освен това той предоставя на потребителя кода на състоянието, свързан с грешката. Но ако потребителят не е запознат с кодовете за състояние, страницата също обяснява значението на кода чрез атрибута за грешка.
Последният ред текст представя на потребителя съобщение в случай на изключение. След това връзката в края позволява на потребителя да се върне обратно към началната страница. The error.html използва CSS стилов лист и две изображения, за да създаде следния изглед:
Поддържайте страницата си с грешки удобна за потребителя
Основната цел на страницата за грешка е да информира потребителя, че е възникнала конкретна грешка. Тази страница за грешка обаче все още е аспект на приложението. Ето защо е от решаващо значение да се гарантира, че страницата за грешки също е удобна за потребителя.
Това означава да изберете да използвате атрибутите за грешка, които съобщават грешката по по-лесен начин. Така че можете да изберете да използвате атрибута path вместо атрибута trace, който е много по-сложен и съдържа подробности, които потребителят не трябва да знае.
Също така не искате да предоставяте на случаен потребител прекомерна информация за вътрешната работа на вашето приложение, тъй като това може да компрометира сигурността на приложението.