Bài đăng nổi bật


Phân biệt ${} và *{}

Trong Thymeleaf một biểu thức biến (variable expression) có cú pháp ${ }. Ngoài ra *{ } cũng là một biểu thức biến được sử dụng khá thường xuyên.

Cú pháp dấu hoa thị (Asterisk Syntax) đánh giá các biểu thức trên các đối tượng được chọn hơn là trên toàn bộ bối cảnh. Để lựa chọn một đối tượng bạn sử dụng thuộc tính th:object.

Xem một ví dụ đơn giản dưới đây:

<div th:object = "${person}" class="box">
  <p><b>Full Name:</b> <span th:utext="*{fullName}"></span></p>
  <p><b>Email:</b> <span th:utext="*{email}"></span></p>
</div>

Tương đương với: 

<div class="box">
  <p><b>Full Name:</b> <span th:utext="${person.fullName}"></span></p>
  <p><b>Email:</b> <span th:utext="${person.email}"></span></p>
</div>

Và tất nhiên bạn có thể trộn lẫn cú pháp dấu hoa thị và cú pháp dollar với nhau, chẳng hạn:
Mix Syntax.

<div th:object = "${person}" class="box">
  <p><b>Full Name:</b> <span th:utext="*{fullName}"></span></p>
  <p><b>Email:</b> <span th:utext="${person.email}"></span></p>
</div>

Điều gì xẩy ra khi bạn không chọn một đối tượng nào, nhưng sử dụng cú pháp dấu hoa thị *{ }. Trong trường hợp này ${ } và *{ } hoạt động giống nhau.

<div class="box">
  <p><b>Full Name:</b> <span th:utext="*{person.fullName}"></span></p>
  <p><b>Email:</b> <span th:utext="*{person.email}"></span></p>
</div>

Tương tự như: 

<div class="box">
  <p><b>Full Name:</b> <span th:utext="${person.fullName}"></span></p>
  <p><b>Email:</b> <span th:utext="${person.email}"></span></p>

</div>

Các ký hiệu $, *, #, @, ~ và cách dùng

Biểu thức với biến: ${ ... }

Biểu thức với thuộc tính: *{ ... }

Biểu thức với message: #{ ... }

Biểu thức với URL: @{ ... }

Biểu thức với Fragment: ~{ ... }

Post a Comment

Mới hơn Cũ hơn