Cum se creează pagini personalizate de eroare Spring Boot cu Thymeleaf

Software-ul întâmpină erori. Chiar și cele mai bune aplicații vor întâmpina erori la un moment dat. Prin urmare, fiecare aplicație ar trebui să aibă niște mecanisme de gestionare a erorilor.

Spring Boot oferă o pagină implicită de eroare Whitelabel ca componentă a configurației sale automate pentru gestionarea erorilor. Cu toate acestea, se așteaptă ca dezvoltatorii să creeze o pagină de eroare personalizată care să înlocuiască pagina de eroare Whitelabel. În acest articol, veți învăța cum să personalizați pagina de eroare pentru aplicațiile Spring Boot.

Pagina de eroare etichetă albă a Spring Boot

Când o aplicație Spring Boot întâmpină o eroare, solicită adresa URL /error. Dacă nu există nicio vizualizare în această locație, va afișa pagina de eroare Whitelabel:

Pagina de eroare Whitelabel indică data și ora erorii, împreună cu fusul orar corespunzător. În plus, indică tipul de eroare și codul asociat. Pagina Whitelabel afirmă că aceasta este o eroare 404 (pagina nu a fost găsită). Acest lucru se datorează faptului că aplicația eșantion nu are mapare pentru adresa URL „/products”.

Majoritatea informațiilor prezentate pe pagina de eroare Whitelabel sunt preluate din anumite atribute de eroare. Vizualizarea erorilor Spring Boot are acces la următoarele atribute de eroare:

  • eroare: motivul erorii.
  • timestamp: data și ora la care apare eroarea.
  • status: codul de stare de eroare.
  • excepție: numele clasei excepției rădăcină (dacă eroarea este rezultatul unei excepții).
  • mesaj: mesajul de excepție (dacă eroarea este rezultatul unei excepții).
  • erori: orice rezultat dintr-o excepție BindingResult (dacă eroarea este rezultatul unei excepții).
  • urmă: urmărirea stivei de excepții (dacă eroarea este rezultatul unei excepții).
  • cale: calea URL unde apare eroarea.
  Cum să ștergi un cont Nintendo Switch

Crearea unei pagini de eroare cu Thymeleaf

Aplicația dvs. Spring Boot ar trebui să aibă o singură pagină de eroare stocată într-un șablon de „eroare”. Extensia acestui șablon va varia în funcție de tehnologia șablonului pe care decideți să o utilizați. De exemplu, dacă optați pentru un șablon Java Server Pages (JSP), numele fișierului ar trebui să fie error.jsp.

Cu toate acestea, acest exemplu de aplicație Spring Boot utilizează motorul de șablon Thymeleaf. Deci, numele șablonului este error.html. Ar trebui să plasați în mod constant șablonul de eroare în folderul șablon, sub directorul de resurse cu toate celelalte fișiere șablon.

Fișierul 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>

Pagina de eroare personalizată îndeplinește câteva sarcini importante. Declară apariția unei erori. Ulterior, afișează solicitarea HTTP care a declanșat eroarea. În plus, furnizează utilizatorului codul de stare asociat cu eroarea. Dar dacă utilizatorul nu este familiarizat cu codurile de stare, pagina explică și semnificația codului prin atributul de eroare.

Linia finală de text prezintă utilizatorului un mesaj în cazul unei excepții. Apoi, linkul de la sfârșit permite utilizatorului să navigheze înapoi la pagina de pornire. Fișierul error.html folosește o foaie de stil CSS și două imagini pentru a crea următoarea vizualizare:

  Cum se creează un formular Google cu logică de ramificare

Păstrați pagina de eroare prietenoasă pentru utilizator

Scopul principal al paginii de eroare este de a informa utilizatorul că a apărut o anumită eroare. Cu toate acestea, această pagină de eroare este încă un aspect al aplicației. Prin urmare, este crucial să vă asigurați că pagina de eroare este ușor de utilizat.

Aceasta va însemna să optați pentru utilizarea atributelor de eroare care comunică eroarea într-un mod mai simplu. Deci, ați putea alege să utilizați atributul cale în loc de atributul urmă, care este mult mai complex și conține detalii pe care utilizatorul nu trebuie să le cunoască.

De asemenea, nu doriți să oferiți unui utilizator aleatoriu informații excesive despre funcționarea interioară a aplicației dvs., deoarece acest lucru ar putea compromite securitatea aplicației.