Contents

Cách tạo trang lỗi khởi động mùa xuân tùy chỉnh với Thymeleaf

Phần mềm gặp lỗi. Ngay cả những ứng dụng tốt nhất cũng sẽ gặp lỗi ở một số thời điểm. Do đó, mọi ứng dụng nên có sẵn một số cơ chế xử lý lỗi.

Spring Boot kết hợp cấu hình tự động để xử lý lỗi bao gồm trang lỗi Whitelabel mặc định. Tuy nhiên, dự đoán rằng các nhà phát triển sẽ tạo trang lỗi được cá nhân hóa của riêng họ để thay thế phiên bản Whitelabel tiêu chuẩn. Bài viết này cung cấp hướng dẫn về cách điều chỉnh trang lỗi để sử dụng trong các ứng dụng Spring Boot.

Trang lỗi nhãn trắng của Spring Boot

Khi gặp lỗi trong ứng dụng Spring Boot, hệ thống sẽ tự động yêu cầu endpoint “/error”. Trong trường hợp đường dẫn được chỉ định này không chứa bất kỳ chế độ xem hoặc mẫu nào được xác định trước, trang lỗi Nhãn trắng sẽ được hiển thị dưới dạng phản hồi mặc định cho người dùng.

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

Trang Lỗi Nhãn Trắng hiển thị dấu thời gian khi xảy ra giám sát cũng như múi giờ liên quan. Hơn nữa, nó tiết lộ việc phân loại lỗi và mã định danh tương ứng của nó. Trang Nhãn Trắng thông báo cho người dùng rằng

Phần lớn dữ liệu hiển thị trên trang lỗi Nhãn trắng được lấy từ các đặc điểm lỗi cụ thể. Chế độ xem lỗi trong Spring Boot có quyền truy cập vào nhiều thuộc tính như vậy, bao gồm nhưng không giới hạn ở:

Thuật ngữ “lỗi” đề cập đến một nguyên nhân hoặc lời giải thích cụ thể đằng sau sự sai lệch ngoài chủ ý so với kết quả, tiêu chuẩn hoặc kỳ vọng mong muốn. Nó biểu thị sự khác biệt giữa những gì dự định và những gì thực sự xảy ra, cho thấy rằng cần phải cải thiện để đạt được hiệu suất tối ưu hoặc đạt được mục tiêu.

Dấu thời gian đề cập đến thời điểm cụ thể xảy ra lỗi, thường được biểu thị bằng sự kết hợp giữa ngày và giờ.

⭐status: mã trạng thái lỗi.

Tên lớp của ngoại lệ gốc, nếu lỗi xuất phát từ một ngoại lệ, sẽ đóng vai trò là người chỉ định cho ngoại lệ xảy ra ở cấp cao nhất trong hệ thống phân cấp của các ngoại lệ.

Giá trị được liên kết với “thông báo” chính trong từ điển biểu thị thông báo ngoại lệ, nếu lỗi phát sinh do ngoại lệ.

Các lỗi xác thực bao gồm bất kỳ kết quả nào xuất phát từ ngoại lệ BindingResult, trong trường hợp lỗi phát sinh do một sự cố đặc biệt.

Dấu vết ngoại lệ đề cập đến bản ghi các lệnh gọi hàm dẫn đến lỗi, xảy ra khi một ngoại lệ được đưa ra trong quá trình thực thi chương trình. Thông tin này có thể hữu ích trong việc xác định nguồn gốc của vấn đề và gỡ lỗi mã tương ứng.

Có thể truy cập đường dẫn URL gặp lỗi thông qua các bước sau:

Tạo một trang lỗi với Thymeleaf

Để quản lý hiệu quả các lỗi trong ứng dụng Spring Boot, bạn nên chỉ định một trang lỗi duy nhất và lưu trữ nó trong một mẫu cụ thể. Tên tệp của mẫu nói trên có thể khác nhau tùy theo công nghệ mẫu đã chọn; ví dụ: nếu một người chọn Trang máy chủ Java (JSP), thì tệp sẽ có tên là “error.jsp”.

Kết hợp công cụ mẫu Thymeleaf, ứng dụng Spring Boot cụ thể này sử dụng tệp error.html làm nền tảng để hiển thị mẫu. Điều bắt buộc là phải duy trì một mẫu nhất quán bằng cách định vị mẫu lỗi trong thư mục “mẫu”, nằm bên dưới thư mục “tài nguyên” cùng với tất cả các tệp mẫu bổ sung của bạn.

Tệp 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>

Trang lỗi tùy chỉnh phục vụ nhiều mục đích. Đầu tiên, nó thừa nhận sự hiện diện của một lỗi. Thứ hai, nó hiển thị yêu cầu HTTP cụ thể gây ra lỗi. Thứ ba, nó cung cấp cho người dùng mã trạng thái tương ứng kèm theo lỗi. Trong trường hợp người dùng không quen với mã trạng thái, trang sẽ giải thích thêm tầm quan trọng của chúng bằng thuộc tính lỗi.

Phần kết luận của nội dung đưa ra thông báo cho người dùng trong trường hợp xảy ra sự cố ngoài ý muốn. Sau đó, siêu liên kết nằm ở đỉnh cho phép người dùng quay lại trang web chính bằng cách điều hướng đến trang đó. Tài liệu error.html sử dụng Bảng định kiểu xếp tầng (CSS) cùng với hai thành phần trực quan để xây dựng bố cục sau:

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

Giữ cho trang lỗi của bạn thân thiện với người dùng

Mục tiêu chính của trang lỗi là truyền đạt cho người dùng biết rằng đã xảy ra một lỗi cụ thể. Tuy nhiên, nó vẫn là một phần của phần mềm. Do đó, việc đảm bảo rằng trang lỗi dễ hiểu và dễ điều hướng cho người dùng là điều cần thiết.

Một cách tiếp cận khác là sử dụng các thuộc tính lỗi đơn giản hơn để truyền tải thông báo lỗi theo cách đơn giản hơn. Ví dụ: thay vì sử dụng thuộc tính theo dõi phức tạp, người ta có thể chọn thuộc tính đường dẫn vì nó chỉ cung cấp thông tin cần thiết mà không đi sâu vào các chi tiết cụ thể không cần thiết.

Điều quan trọng là không tiết lộ thông tin nhạy cảm liên quan đến sự phức tạp của phần mềm của một người cho những người dùng thiếu hiểu biết, vì làm như vậy có thể gây nguy hiểm cho sự an toàn và tính toàn vẹn của chương trình.