Stranice s pogreškom Whitelabel izgledaju tupo i mogu negativno utjecati na korisničko iskustvo. Naučite kako izraditi prilagođene stranice s pogreškama koristeći Thymeleaf.

Softver doživljava pogreške. Čak će i najbolje aplikacije u nekom trenutku naići na pogreške. Stoga bi svaka aplikacija trebala imati mehanizme za rješavanje pogrešaka.

Spring Boot pruža zadanu Whitelabel stranicu s pogreškama kao komponentu svoje automatske konfiguracije za rukovanje pogreškama. Unatoč tome, očekuje se da će programeri stvoriti prilagođenu stranicu s pogreškom koja će zamijeniti stranicu s pogreškom Whitelabel. U ovom ćete članku naučiti kako prilagoditi stranicu pogreške za svoje Spring Boot aplikacije.

Stranica s pogreškom Whitelabel tvrtke Spring Boot

Kada Spring Boot aplikacija naiđe na pogrešku, ona zahtijeva /error URL. Ako na ovoj lokaciji nema prikaza, prikazuje se stranica s pogreškom Whitelabel:

Stranica pogreške Whitelabel navodi datum i vrijeme pogreške, zajedno s odgovarajućom vremenskom zonom. Osim toga, označava vrstu pogreške i pripadajući kod. Whitelabelova stranica to navodi

instagram viewer
ovo je greška 404 (stranica nije pronađena). To je zato što ogledna aplikacija nema mapiranje za URL "/products".

Većina informacija prikazanih na Whitelabel stranici s pogreškama preuzeta je iz specifičnih atributa pogreške. Prikaz pogreške programa Spring Boot ima pristup sljedećim atributima pogreške:

  • greška: razlog greške.
  • vremenska oznaka: datum i vrijeme kada se greška javlja.
  • status: kod statusa greške.
  • izuzetak: naziv klase korijenske iznimke (ako je pogreška rezultat iznimke).
  • poruka: poruka o iznimci (ako je pogreška rezultat iznimke).
  • pogreške: Svi rezultati iz iznimke BindingResult (ako je pogreška rezultat iznimke).
  • trag: praćenje hrpe iznimke (ako je pogreška rezultat iznimke).
  • staza: URL put na kojem se pojavljuje pogreška.

Stvaranje stranice s pogreškom pomoću Thymeleafa

Vaša Spring Boot aplikacija trebala bi imati jednu stranicu pogreške pohranjenu unutar predloška "greška". Proširenje ovog predloška razlikovat će se ovisno o tehnologiji predloška koju odlučite koristiti. Na primjer, ako se odlučite za predložak Java Server Pages (JSP), naziv datoteke trebao bi biti greška.jsp.

Međutim, ovaj primjer aplikacije Spring Boot koristi mehanizam predloška Thymeleaf. Dakle, naziv predloška je greška.html. Trebali biste dosljedno postavljati predložak pogreške u šablona mapa, ispod resursi direktorij sa svim ostalim datotekama predložaka.

Datoteka 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>

Prilagođena stranica s pogreškama ispunjava nekoliko važnih zadataka. Izjavljuje pojavu greške. Naknadno se prikazuje HTTP zahtjev koji je pokrenuo grešku. Nadalje, korisniku daje statusni kod povezan s pogreškom. Ali ako korisnik nije upoznat sa statusnim kodovima, stranica također objašnjava značenje koda kroz atribut pogreške.

Posljednji redak teksta predstavlja korisniku poruku u slučaju iznimke. Zatim, poveznica na kraju dopušta korisniku da se vrati na početnu stranicu. The greška.html datoteka koristi CSS stilski list i dvije slike za stvaranje sljedećeg prikaza:

Neka vaša stranica s pogreškama bude prilagođena korisniku

Primarna svrha stranice s pogreškom je obavijestiti korisnika da je došlo do određene pogreške. Međutim, ova stranica pogreške još uvijek je aspekt aplikacije. Stoga je ključno osigurati da je stranica s pogreškom također prilagođena korisniku.

To će značiti odabir korištenja atributa pogreške koji komuniciraju pogrešku na nekompliciraniji način. Dakle, možete odabrati korištenje atributa staze umjesto atributa traga, koji je mnogo složeniji i sadrži detalje koje korisnik ne mora znati.

Također ne želite nasumičnom korisniku dati previše informacija o unutarnjem radu vaše aplikacije, jer bi to moglo ugroziti sigurnost aplikacije.