Whitelabel kļūdu lapas izskatās neasas un var negatīvi ietekmēt lietotāja pieredzi. Uzziniet, kā izveidot pielāgotas kļūdu lapas, izmantojot Thymeleaf.
Programmatūrā ir kļūdas. Pat labākajās lietojumprogrammās dažos gadījumos radīsies kļūdas. Tāpēc katrā lietojumprogrammā ir jābūt ieviestiem kļūdu apstrādes mehānismiem.
Spring Boot nodrošina noklusējuma Whitelabel kļūdu lapu kā tās automātiskās konfigurācijas komponentu kļūdu apstrādei. Tomēr ir sagaidāms, ka izstrādātāji izveidos pielāgotu kļūdu lapu, kas aizstās Whitelabel kļūdas lapu. Šajā rakstā jūs uzzināsit, kā pielāgot kļūdu lapu savām Spring Boot lietojumprogrammām.
Spring Boot baltās etiķetes kļūdas lapa
Kad Spring Boot lietojumprogramma saskaras ar kļūdu, tā pieprasa /error URL. Ja šajā vietā nav skata, tiek parādīta Whitelabel kļūdas lapa:
Whitelabel kļūdas lapā ir norādīts kļūdas datums un laiks, kā arī atbilstošā laika josla. Turklāt tas norāda kļūdas veidu un ar to saistīto kodu. Whitelabel lapā tas ir norādīts šī ir 404 kļūda (Lapa nav atrasta). Tas ir tāpēc, ka lietojumprogrammas paraugam nav kartēšanas URL “/products”.
Lielākā daļa informācijas, kas tiek parādīta kļūdu lapā Whitelabel, ir iegūta no konkrētiem kļūdu atribūtiem. Spring Boot kļūdu skatam ir piekļuve šādiem kļūdu atribūtiem:
- kļūda: kļūdas iemesls.
- laika zīmogs: kļūdas rašanās datums un laiks.
- statusu: kļūdas statusa kods.
- izņēmums: saknes izņēmuma klases nosaukums (ja kļūda ir izņēmuma rezultāts).
- ziņa: izņēmuma ziņojums (ja kļūda ir izņēmuma rezultāts).
- kļūdas: jebkuri rezultāti no BindingResult izņēmuma (ja kļūda ir izņēmuma rezultāts).
- izsekot: izņēmuma steka izsekošana (ja kļūda ir izņēmuma rezultāts).
- ceļš: URL ceļš, kurā rodas kļūda.
Kļūdu lapas izveide ar Thymeleaf
Jūsu Spring Boot lietojumprogrammā ir jābūt vienai kļūdas lapai, kas saglabāta kļūdas veidnē. Šīs veidnes paplašinājums mainīsies atkarībā no veidņu tehnoloģijas, kuru nolemjat izmantot. Piemēram, ja izvēlaties Java Server Pages (JSP) veidni, faila nosaukumam ir jābūt error.jsp.
Tomēr šis Spring Boot lietojumprogrammas paraugs izmanto Thymeleaf veidņu dzinējs. Tātad, veidnes nosaukums ir error.html. Kļūdas veidne pastāvīgi jāievieto mapē veidne mapi zem resursus direktorijā ar visiem citiem jūsu veidņu failiem.
Fails 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>
Pielāgotā kļūdu lapa veic vairākus svarīgus uzdevumus. Tas paziņo par kļūdas rašanos. Pēc tam tas tiek demonstrēts HTTP pieprasījums kas izraisīja kļūdu. Turklāt tas piegādā lietotājam statusa kodu, kas saistīts ar kļūdu. Bet, ja lietotājs nepārzina statusa kodus, lapa arī izskaidro koda nozīmi, izmantojot kļūdas atribūtu.
Pēdējā teksta rindiņa sniedz lietotājam ziņojumu izņēmuma gadījumā. Pēc tam beigās esošā saite ļauj lietotājam pāriet atpakaļ uz sākumlapu. The error.html fails izmanto CSS stila lapu un divus attēlus, lai izveidotu šādu skatu:
Saglabājiet savu kļūdu lapu lietotājam draudzīgu
Kļūdu lapas galvenais mērķis ir informēt lietotāju, ka ir radusies konkrēta kļūda. Tomēr šī kļūdas lapa joprojām ir lietojumprogrammas aspekts. Tāpēc ir ļoti svarīgi nodrošināt, lai kļūdu lapa būtu arī lietotājam draudzīga.
Tas nozīmēs izvēli izmantot kļūdu atribūtus, kas par kļūdu paziņo vienkāršāk. Tātad, jūs varat izvēlēties izmantot atribūtu path, nevis trace atribūtu, kas ir daudz sarežģītāks un satur informāciju, kas lietotājam nav jāzina.
Jūs arī nevēlaties sniegt nejaušam lietotājam pārmērīgu informāciju par savas lietojumprogrammas iekšējo darbību, jo tas var apdraudēt lietojumprogrammas drošību.