Następujący znacznik JSTL może być użyty do ustawienia wartości zmiennej w zasięgu żądania.Operator potrójny w JSTL/EL
<c:set var="value" scope="request" value="someValue"/>
Chcę sprawdzić warunkowo, jeśli zmienna value
ustawiany jest pusta lub nie i wyświetlić wynik odpowiednio coś jak poniżej, używając <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>
Chcę zmniejszyć linii kodu, używając potrójny wyraz podobny,
<c:out default="None" value="${not empty value ? value : 'None'}"/>
To jest oceniany jako to faktycznie oznacza, ale jeśli ja zamienić kolejność wyrazów podobnych,
<c:out default="None" value="${empty value ? 'None' : value}"/>
to jest błąd składni wskazujący,
"$ {wartość pusta 'Brak': wartość}" zawiera nieprawidłową ekspresją (s): javax.el.ELException: błąd analizy: $ {wartość pustą 'none': value}
więc dlaczego czy to się stało?
używam biblioteki JSTL 1.1
oraz następujące taglib wliczono
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Skopiowałem i wkleiłem twój kod i działa on dla mnie bezbłędnie. – rickz
@rickz - To ** może ** być problemem z bibliotekową wersją JSTL, której używam. Z której biblioteki korzystasz? – Tiny
Używam 1.2. – rickz