In a JSP page, you need to display a user’s email address stored in the request scope as userEmail. If userEmail is null or empty, a default message "No email provided" should be displayed. Which of the following JSTL constructs correctly achieves this while ensuring proper HTML escaping?

5 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở

Đáp án đúng: "<c:out value="${userEmail}" default="No email provided" />". Thẻ c:out vừa thoát các ký tự đặc biệt của HTML trước khi in, vừa có thuộc tính default dùng khi biểu thức cho null hoặc chuỗi rỗng, nên một thẻ duy nhất làm trọn cả hai yêu cầu của đề mà không cần thêm điều kiện nào. "<c:out value="${

Lời giải
if (userEmail != null) {
  'No email provided'
}

}" />" sai từ nền tảng: EL là ngôn ngữ biểu thức, không có câu lệnh điều kiện lẫn khối ngoặc nhọn, nên chuỗi đó không dịch được. "<c:out value="${userEmail}" ifNull="No email provided" />" đặt đúng ý nhưng tên thuộc tính không có trong bộ mô tả thư viện, mà thẻ JSTL thì báo lỗi ngay ở pha dịch khi gặp thuộc tính lạ. "<c:out value="${userEmail}" nullVal="No email provided" />" cũng là tên tự nghĩ ra, không thuộc thư viện lõi. "<c:out value="${userEmail}" null="No email provided" />" ngoài việc sai tên thuộc tính còn lấy một từ khoá của EL làm tên, càng không thể hợp lệ.

Cùng phần 7

Xuất hiện trong 1 bộ đề