Contents

Hur man skapar anpassade Spring Boot-felsidor med Thymeleaf

Programvara drabbas av fel. Även de bästa applikationer kommer att stöta på fel vid något tillfälle. Därför bör varje applikation ha några mekanismer för felhantering på plats.

Spring Boot innehåller en automatisk konfiguration för felhantering som inkluderar en standard Whitelabel-felsida. Det förväntas dock att utvecklare kommer att generera sin egen personliga felsida för att ersätta standard Whitelabel-versionen. Den här artikeln ger vägledning om hur man skräddarsyr felsidan för användning i Spring Boot-applikationer.

Spring Boots Whitelabel-felsida

När ett fel uppstår i ett Spring Boot-program kommer systemet automatiskt att begära ändpunkten “/error”. Om den angivna sökvägen inte innehåller några fördefinierade vyer eller mallar visas Whitelabel-felsidan som ett standardsvar till användarna.

/sv/images/whitelabel-error-page.jpg

White Label-felsidan visar tidsstämpeln för när förbiseendet inträffade, samt relevant tidszon. Dessutom avslöjar den klassificeringen av misstaget och dess motsvarande identifierare. White Label-sidan informerar användaren om att

Majoriteten av de data som visas på Whitelabel-felsidan härrör från särskilda felegenskaper. Felvyn i Spring Boot har tillgång till en mängd sådana attribut, inklusive men inte begränsat till:

Termen “fel” hänvisar till en specifik orsak eller förklaring bakom en oavsiktlig avvikelse från ett önskat resultat, standard eller förväntan. Det innebär en diskrepans mellan vad som var avsett och vad som faktiskt inträffade, vilket indikerar att det finns utrymme för förbättringar för att uppnå optimal prestanda eller nå ett mål.

Tidsstämpeln hänvisar till den specifika tidpunkt då ett fel inträffar, vanligtvis representerat av en kombination av datum och tid.

⭐status: felets statuskod.

Klassnamnet för rotundantaget, om felet beror på ett undantag, fungerar som en beteckning för det undantag som inträffar på den högsta nivån i undantagshierarkin.

Det värde som är kopplat till nyckeln “message” i ordlistan representerar undantagsmeddelandet, om felet uppstår på grund av ett undantag.

Valideringsfelen består av alla resultat som härrör från ett BindingResult-undantag, i de fall där felet uppstår på grund av en exceptionell händelse.

Undantagsspåret avser registreringen av funktionsanrop som leder fram till ett fel, som uppstår när ett undantag kastas under programkörning.Denna information kan vara användbar för att identifiera källan till problemet och felsöka koden därefter.

URL-sökvägen där felet uppstod kan nås genom följande steg:

Skapa en felsida med Thymeleaf

För att effektivt kunna hantera fel i din Spring Boot-applikation rekommenderar vi att du skapar en felsida och lagrar den i en specifik mall. Filnamnet på denna mall kan variera beroende på den valda malltekniken; om man till exempel väljer Java Server Pages (JSP), kommer filen att heta “error.jsp”.

Denna specifika Spring Boot-applikation använder Thymeleaf-mallmotorn och använder filen error.html som grund för rendering av mallar. Det är viktigt att upprätthålla ett konsekvent mönster genom att placera felmallen i mappen “template”, som finns under katalogen “resources” tillsammans med alla dina ytterligare mallfiler.

Filen error.html

 <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
 <head>
     <title> Error</title>
     <link rel="stylesheet" th:href="@{/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="@{/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="/home">Back to home</a>
     </div>
 </body>
</html>

Den anpassade felsidan tjänar ett mångfacetterat syfte. För det första bekräftar den förekomsten av ett fel. För det andra visar den den specifika HTTP-begäran som orsakade felet. För det tredje ger den användaren motsvarande statuskod som åtföljer felet. Om användaren inte är bekant med statuskoder, förklarar sidan ytterligare deras betydelse med hjälp av felattributet.

Den avslutande delen av innehållet innehåller ett meddelande till användaren om något oväntat inträffar. Hyperlänken som finns i slutet gör det sedan möjligt för användaren att återvända till huvudsidan genom att navigera till den. Dokumentet error.html använder en Cascading Style Sheet (CSS) tillsammans med två visuella element för att konstruera följande layout:

/sv/images/customized-error-page.jpg

Håll din felsida användarvänlig

Det huvudsakliga syftet med en felsida är att informera användarna om att ett visst misstag har inträffat. Trots detta är den fortfarande en del av själva programvaran. Därför är det viktigt att se till att felsidan är lätt för användarna att förstå och navigera på.

Ett alternativt tillvägagångssätt skulle vara att använda enklare felattribut som förmedlar felmeddelandet på ett mer okomplicerat sätt. I stället för att använda det invecklade trace-attributet kan man till exempel välja path-attributet, eftersom det bara ger den väsentliga information som behövs utan att fördjupa sig i onödiga detaljer.

Det är viktigt att inte avslöja känslig information om hur ens programvara fungerar för oinformerade användare, eftersom det kan äventyra programmets säkerhet och integritet.