Thẻ sau đây của JSTL có thể được sử dụng để đặt giá trị cho một biến trong phạm vi yêu cầu.Toán tử bậc ba trong JSTL/EL
<c:set var="value" scope="request" value="someValue"/>
Tôi muốn kiểm tra điều kiện, nếu biến value
được thiết lập là trống hay không và hiển thị kết quả phù hợp một cái gì đó như sau, sử dụng <c:when>...</c:when>
.
<c:choose>
<c:when test="${not empty value}">
<c:out default="None" value="${value}"/>
</c:when>
<c:otherwise>
<c:out default="None" value="None"/>
</c:otherwise>
</c:choose>
tôi muốn giảm bớt dòng mã sử dụng một biểu ternary như,
<c:out default="None" value="${not empty value ? value : 'None'}"/>
Nó được đánh giá là nó thực sự có nghĩa nhưng nếu tôi trao đổi thứ tự của các biểu thức như thế nào,
<c:out default="None" value="${empty value ? 'None' : value}"/>
thì đó là lỗi cú pháp cho biết,
"$ {trống giá trị 'Không': giá trị}" chứa biểu hiện không hợp lệ (s): javax.el.ELException: Lỗi Parsing: $ {giá trị rỗng 'Không': giá trị}
Vậy tại sao điều này có xảy ra không?
Tôi đang sử dụng thư viện JSTL 1.1
và taglib sau được bao gồm,
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Tôi đã sao chép và dán mã của bạn và nó hoạt động cho tôi mà không có lỗi. – rickz
@rickz - Nó ** có thể ** là vấn đề với phiên bản thư viện của JSTL mà tôi đang sử dụng. Bạn đang sử dụng thư viện nào? – Tiny
Tôi đang sử dụng 1.2. – rickz