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?
Các phương án trả lời
Chọn một phương ánLờ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="${
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ệ.