Il seguente tag di JSTL può essere utilizzato per impostare un valore su una variabile in un ambito di richiesta.Operatore ternario in JSTL/EL
<c:set var="value" scope="request" value="someValue"/>
voglio verificare condizionale, se la variabile value
essere impostato è vuota o non e visualizzare il risultato di conseguenza qualcosa di simile a quanto segue, utilizzando <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>
voglio ridurre la riga di codice utilizzando un'espressione ternario come,
<c:out default="None" value="${not empty value ? value : 'None'}"/>
Si è valutato in quanto significa in realtà, ma se io interscambio fra l'ordine delle espressioni come,
<c:out default="None" value="${empty value ? 'None' : value}"/>
allora è un errore di sintassi che indica,
"$ {valore vuoto 'None': value}" contiene un'espressione non valida (s): javax.el.ELException: errore di analisi: $ {valore vuoto 'None': valore}
Allora perché questo succede?
Sto utilizzando la libreria JSTL 1.1
e il seguente taglib è incluso,
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Ho copiato e incollato il codice e funziona per me senza errori. – rickz
@rickz - Potrebbe essere ** il problema con la versione della libreria di JSTL che sto usando. Quale libreria stai usando? – Tiny
Sto usando 1.2. – rickz