Czy w JSTL dostępny jest znacznik if-else?Jak korzystać z opcji else w JSTL
Odpowiedz
Tak, ale jest niezręczny jak cholera, np.
<c:choose>
<c:when test="${condition1}">
...
</c:when>
<c:when test="${condition2}">
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:choose>
Dla prosty if-else można użyć operatora potrójny jak ten
<c:set value="34" var="num"/>
<c:out value="${num % 2 eq 0 ? 'even': 'odd'}"/>
To jest dobra odpowiedź, ale jest wysoce sytuacyjna, jeśli chodzi o jej przydatność. –
Nie ma if-else, tylko wtedy, gdy.
<c:if test="${user.age ge 40}">
You are over the hill.
</c:if>
Opcjonalnie można użyć wybrać, gdy:
<c:choose>
<c:when test="${a boolean expr}">
do something
</c:when>
<c:when test="${another boolean expr}">
do something else
</c:when>
<c:otherwise>
do this when nothing else is true
</c:otherwise>
</c:choose>
Witaj, @iwxfer, powyższy link nie jest już dostępny, proszę zaktualizować, jeśli potrafisz, jeśli masz dobry wynik, w inny sposób go usuń. – Ajay2707
mi się upiekło prostu za pomocą dwóch czy znaczniki, myślałem, że dodać odpowiedź w przypadku jest to przydatne dla kogoś innego:
<c:if test="${condition}">
...
</c:if>
<c:if test="${!condition}">
...
</c:if>
natomiast technicznie nie jest if-else
per se, zachowanie jest takie samo i unika przylegający podejście za pomocą znacznika choose
, więc w zależności od sposobu kompleks Twój wymogiem jest to może być lepsze.
downvoter, prosimy o komentarz – jonk
Rozważmy przypadek, gdy warunek jest czymś skomplikowanym i brzydkim jak $ {not param.age gt 42 i someOtherVar eq 'foobar'}. Trzeba by zapisać warunek w tymczasowej zmiennej boolowskiej, aby można było wykonać warunek lub zapisać odwrotność tego warunku. Oba brzydkie. Składnia "inaczej" jest gwarantowaną odwrotnością. –
Rzeczywiście złożony warunek wymagałby zmiennej lokalnej lub pisania odwrotnego, ale obie te opcje nadal działałyby. Wyjaśniłem, że zależy to od tego, jak skomplikowane jest wymaganie, czy to podejście byłoby lepsze od tagu 'choose'. – jonk
trzeba użyć tego kodu:
z <%@ taglib prefix="c" uri="http://www.springframework.org/tags/form"%>
i
<c:select>
<option value="RCV"
${records[0].getDirection() == 'RCV' ? 'selected="true"' : ''}>
<spring:message code="dropdown.Incoming" text="dropdown.Incoming" />
</option>
<option value="SND"
${records[0].getDirection() == 'SND'? 'selected="true"' : ''}>
<spring:message code="dropdown.Outgoing" text="dropdown.Outgoing" />
</option>
</c:select>
- 1. Jak korzystać z JSTL?
- 2. Jak korzystać z opcji SyndicationFeed?
- 3. Jak korzystać z opcji onItemSelected w systemie Android?
- 4. Jak korzystać z opcji unordered_map w systemie Android?
- 5. If-then-else w wyrażeniu JSP?
- 6. Rails Paperclip, jak korzystać z opcji filtrowania ImageMagick?
- 7. Jak obliczyć sumę w JSTL
- 8. Jak sformatować datę w JSTL
- 9. Jak zaokrąglić liczbę w JSTL?
- 10. Kiedy użyć requestScope w jstl?
- 11. Dlaczego Python ma "else" w "for-else" i "while-else"?
- 12. Jak wyświetlić datę jako ISO8601 z JSTL?
- 13. JSTL vs JSP Scriptlets
- 14. If ... else if ... else w REBOL
- 15. Jak korzystać z POSIXLY_CORRECT w grep?
- 16. IF - ELSE IF - ELSE Struktura w Excelu
- 17. R błyszczące; jak korzystać z wielu wejść z selectInput, aby przejść do opcji "select" w dplyr?
- 18. Jak prawidłowo podzielić łańcuchy w JSTL?
- 19. Problemy z JSTL forEach w JSF 2
- 20. sufitowa z numeru w JSTL/EL
- 21. Jak sprawdzić isNumeric/IsNumber w JSTL
- 22. Jak zaimplementować if-else
- 23. Jak korzystać z Form.ShowDialog?
- 24. Jak zdobyć pozycję z [] atrybutu String w JSTL tagu/JSP
- 25. Jak używać instrukcji else z Groovy?
- 26. Ocenić list.contains łańcuch w JSTL
- 27. Zagnieżdżone wyrażenie w JSP/JSTL
- 28. Jak korzystać z przycisków radiowych w React?
- 29. Operator potrójny w JSTL/EL
- 30. Else w Kątowymi
oprócz znacznika otoki (wybierz), ja nie wiem, jak to jest bardziej gadatliwy niż gdyby/elseif/else będzie. Jedna etykieta owijki prawie nie jest "przysadzistą jak cholera", nie? –
@Steven: Ma to charakter XML. Na boardzie znajduje się więcej znaków niż w rzeczywistej logice. – skaffman
Ah, ok. To samo można ustawić także dla ' '. –