Expression trong jsp kí hiệu như thế nào
Nguồn: loda.meGiới thiệuTrong bài trước, mình đã đề cập với các bạn kiến trúc web của Spring Boot và giới thiệu chức năng của
@Controller . Show
Trong bài này, chúng ta sẽ tìm hiểu chi tiết hơn về Thymeleaf và sử dụng nó để làm một trang web đơn giản. ThymeleafThymeleaf là một Java Template Engine. Có nhiệm vụ xử lý và generate ra các file HTML, XML, v.v.. Các file HMTL do Thymeleaf tạo ra là nhờ kết hợp dữ liệu và template + quy tắc để sinh ra một file HTML chứa đầy đủ thông tin. Việc của bạn là cung cấp dữ liệu và quy định template như nào, còn việc dùng các thông tin đó để render ra HTML sẽ do Thymeleaf giải quyết. Cú phápCú pháp của Thymeleaf sẽ là một attributes (Thuộc tính) của thẻ HTML và bắt đầu bằng chữ Với cách tiếp cận này, bạn sẽ chỉ cần sử dụng các thẻ HTML cơ bản đã biết mà không cần bổ sung thêm syntax hay thẻ mới như JSP truyền thống. Ví dụ: Để truyền dữ liệu từ biến
Chúng ta viết thẻ H1 như bình thường, nhưng không chứa bất cứ text nào trong thẻ. Mà sử dụng cú pháp Kết quả khi render ra:
thuộc tính Đó là cách Thymeleaf hoạt động. Model & View Trong Spring BootTrong bài trước, tôi đã demo cách sử dụng đối tượng
Trong template
thymeleaf, để lấy các thông tin trong
Ngoài ra, để lấy thông tin đặc biệt hơn:
Nói tới đây có lẽ hơi khó hiểu, chúng ta sẽ dùng ví dụ để hiểu rõ từng loại Expression. ${...} - Variables ExpressionsTrên Controller bạn đưa vào một số giá trị:
Để lấy giá trị của biến
Đoạn expression trên tương đương với:
*{...} - Variables Expressions on selectionsDấu Điểm khác biệt là nó sẽ lấy ra giá trị của một biến cho trước bởi
Còn Vậy đoạn code ở trên tương đương với:
#{...} - Message ExpressionVí dụ, trong file config
Thì cách lấy nó ra nhanh nhất là:
Đoạn text tiếng việt bên trong thẻ @{...} - URL Expression
Ví dụ:
Nếu bắt dầu bằng dấu Demo minh họaChúng ta sẽ tạo ra một trang web đơn giản để hiểu các loại Expression trong Thymeleaf. pom.xml
Cấu trúc thư mục: Cấu hình thymeleafChúng ta sẽ cấu hình ứng dụng bằng file application.properties
Chức năng messagesCác trang website hỗ trợ đã ngôn ngữ (i18n) thì các message sẽ được lưu dưới dạng key-value. Và tùy theo từng vùng địa lý mà chọn sử dụng value cho hợp lý. Thymeleaf sẽ tự làm điều này cho chúng ta, vì ở trên chúng ta đã cấu hình cho nó vị trí lưu trũ các messages này rồi. Ví dụ: Tôi có một câu chào đơn giản cho 2 vùng và US và VN. i18n/messages_vi.properties
i18n/messages_en.properties
Static & TemplatesLàm Web thì không thể thiếu File Thymleaf sẽ tự biết tìm đường tới những tài nguyên này.
index.html
Trong
index.html
Chạy thử 1.Sau khi config và tạo ra file Hãy chạy thử ứng dụng Spring Boot của mình. App.java
Truy cập vào địa chỉ Ứng dụng hiện ra dòng chữ chào mừng lấy từ Thêm @Controller cho path /profileBây giờ chúng ta sẽ bổ sung thêm Tại đây, tôi có sử dụng Lombok, hãy dám chắc bạn biết nó trước khi lập trình Spring Boot Info.java
WebController.java
Sau đó chúng ta tạo thêm template resources/templates/profile.html
Ở đây, chúng ta sử dụng:
Chạy thử lần 2.Chúng ta chạy lại chương trình lần nữa và truy cập vào địa chỉ Click vào Button Loda Profile. Trình duyệt sẽ đi tới đại chỉ Hiển thị ra toàn bộ thông tin. Vậy là chúng ta đã thành công. KếtĐây là một bài viết trong [Series làm chủ Spring Boot, từ zero to hero][link-series-spring-boot] [link-series-spring-boot]: https://loda.me/spring-boot-0-series-lam-chu-spring-boot-tu-zero-to-hero-loda1558963914472 Như mọi khi, toàn bộ code tham khảo tại Github |