A fehércímkés hibaoldalak tompának tűnnek, és negatívan befolyásolhatják a felhasználói élményt. Ismerje meg, hogyan hozhat létre egyéni hibaoldalakat a Thymeleaf használatával.

A szoftver hibákat tapasztal. Még a legjobb alkalmazások is hibákba ütköznek bizonyos esetekben. Ezért minden alkalmazásnak rendelkeznie kell valamilyen hibakezelési mechanizmussal.

A Spring Boot egy alapértelmezett Whitelabel hibaoldalt biztosít a hibakezeléshez szükséges automatikus konfiguráció összetevőjeként. Mindazonáltal az elvárás az, hogy a fejlesztők létrehozzanak egy egyéni hibaoldalt, amely felváltja a Whitelabel hibaoldalt. Ebből a cikkből megtudhatja, hogyan szabhatja testre a hibaoldalt a Spring Boot alkalmazásaihoz.

A Spring Boot Whitelabel hibaoldala

Amikor egy Spring Boot alkalmazás hibát észlel, kéri a /error URL. Ha ezen a helyen nincs nézet, megjelenik a Whitelabel hibaoldal:

A Whitelabel hibaoldal megadja a hiba dátumát és időpontját, valamint a megfelelő időzónát. Ezenkívül jelzi a hiba típusát és a hozzá tartozó kódot. A Whitelabel oldal ezt írja

instagram viewer
ez 404-es hiba (az oldal nem található). Ennek az az oka, hogy a példaalkalmazásnak nincs hozzárendelése a „/products” URL-hez.

A Whitelabel hibaoldalon megjelenő információk többsége meghatározott hibaattribútumokból származik. A Spring Boot hibanézete a következő hibaattribútumokhoz fér hozzá:

  • hiba: a hiba oka.
  • időbélyeg: a hiba előfordulásának dátuma és időpontja.
  • állapot: a hibaállapot kódja.
  • kivétel: a gyökér kivétel osztályneve (ha a hiba kivétel eredménye).
  • üzenet: a kivétel üzenet (ha a hiba kivétel eredménye).
  • hibákat: A BindingResult kivételből származó bármely eredmény (ha a hiba kivétel eredménye).
  • nyom: a kivétel verem nyomkövetése (ha a hiba kivétel eredménye).
  • pálya: Az URL elérési útja, ahol a hiba előfordul.

Hibaoldal létrehozása a Thymeleaf segítségével

A Spring Boot alkalmazásnak egyetlen hibaoldallal kell rendelkeznie egy „hiba” sablonon belül. Ennek a sablonnak a kiterjesztése az Ön által választott sablontechnológiától függően változik. Például, ha Java Server Pages (JSP) sablont választ, a fájlnévnek a következőnek kell lennie error.jsp.

Ez a minta Spring Boot alkalmazás azonban használja a Thymeleaf sablon motor. Tehát a sablon neve error.html. A hibasablont következetesen el kell helyeznie a sablon mappa alatt, a erőforrások könyvtárban az összes többi sablonfájllal.

Az error.html fájl

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>

A testreszabott hibaoldal számos fontos feladatot hajt végre. Kijelenti a hiba előfordulását. Ezt követően bemutatja a HTTP kérés ami kiváltotta a hibát. Továbbá ellátja a felhasználót a hibához tartozó állapotkóddal. De ha a felhasználó nem ismeri az állapotkódokat, az oldal a hibaattribútumon keresztül is elmagyarázza a kód jelentését.

A szöveg utolsó sora kivétel esetén üzenetet küld a felhasználónak. Ezután a végén található hivatkozás lehetővé teszi a felhasználó számára, hogy visszatérjen a kezdőlapra. A error.html fájl egy CSS-stíluslapot és két képet használ a következő nézet létrehozásához:

Tartsa felhasználóbarát hibaoldalát

A hibaoldal elsődleges célja, hogy tájékoztassa a felhasználót, hogy konkrét hiba történt. Ez a hibaoldal azonban továbbra is az alkalmazás része. Ezért kulcsfontosságú annak biztosítása, hogy a hibaoldal felhasználóbarát legyen.

Ez azt jelenti, hogy a hibát egyszerűbb módon kommunikáló hibaattribútumokat kell használni. Ezért választhatja a path attribútum használatát a nyomkövetési attribútum helyett, amely sokkal összetettebb, és olyan részleteket tartalmaz, amelyeket a felhasználónak nem kell tudnia.

Ezenkívül ne kívánjon egy véletlenszerű felhasználót túlzott információval ellátni az alkalmazás belső működéséről, mivel ez veszélyeztetheti az alkalmazás biztonságát.