if ... else within JSP or JSTL
Mam otwarte pytanie..
Chcę mieć kod HTML oparty na warunku(desktop/ipad)..powiedz warunek 1 / warunek 2
Chcę mieć osobne fragmenty HTML dla każdego z tych warunków...
if (Condition 1)
Some HTML code for con1
else if (Condition 2)
Some HTML code for con2
Warunek, który chcę przetestować (w JS) to;
var isiPad = navigator.userAgent.match(/iPad/i) != null;
if (isiPad)
{}
else
{}
Teraz to musi być zaimplementowane w .strona jsp...
Więc jak mam to zrobić? Czy powinienem używać JSTL ? Jaki jest najlepszy sposób?Najważniejsze jest to, że tylko odpowiedni kod powinien faktycznie być załadowane/renderowane np. jeśli warunek 1 jest prawdziwy, kod HTML w warunku 2 nie powinien być w ogóle wykonywany (poza tym, że jest ukryty w przeglądarce)
8 answers
Tak.Czy powinienem używać JSTL ?
Możesz używać znaczników <c:if>
i <c:choose>
do renderowania warunkowego w jsp przy użyciu JSTL.
Do symulacji jeśli , możesz użyć:
<c:if test="condition"></c:if>
Aby symulować jeśli...else , możesz użyć:
<c:choose>
<c:when test="${param.enter=='1'}">
pizza.
<br />
</c:when>
<c:otherwise>
pizzas.
<br />
</c:otherwise>
</c:choose>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-22 13:23:16
Jeśli chcesz wypisać inny tekst, bardziej zwięzłym przykładem będzie
${condition ? "some text when true" : "some text when false"}
Jest znacznie krótszy niż c: choose .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-30 11:24:31
Konstrukcja dla tego jest:
<c:choose>
<c:when test="${..}">...</c:when> <!-- if condition -->
<c:when test="${..}">...</c:when> <!-- else if condition -->
<c:otherwise>...</c:otherwise> <!-- else condition -->
</c:choose>
Jeśli warunek nie jest drogi, czasami wolę po prostu użyć dwóch odrębnych tagów <c:if
- ułatwia to czytanie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-09 11:27:36
Jeśli chcesz porównać łańcuchy , Napisz następujący JSTL:
<c:choose>
<c:when test="${myvar.equals('foo')}">
...
</c:when>
<c:when test="${myvar.equals('bar')}">
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:choose>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 14:40:52
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>
<c:set var="val" value="5"/>
<c:choose>
<c:when test="${val == '5'}">
Value is 5
</c:when>
<c:otherwise>
Value is not 5
</c:otherwise>
</c:choose>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-20 08:38:32
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>
<c:set var="isiPad" value="value"/>
<c:choose>
<!-- if condition -->
<c:when test="${...}">Html Code</c:when>
<!-- else condition -->
<c:otherwise>Html code</c:otherwise>
</c:choose>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-18 05:55:12
Możesz wpisać warunek if-else wewnątrz <% %>
na stronach jsp i kod html poza <% %>
Na przykład:
<%
String username = (String)session.getAttribute("username");
if(username==null) {
%>
<p> username is null</p> //html code
<%
} else {
%>
<p> username is not null</p> //html code
<%
}
%>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-02 11:54:32
Jeśli chcesz wykonać następujące czynności używając JSTL Tag Libe, wykonaj następujące kroki:
[Wymaganie] jeśli liczba jest równa 40 i niższa niż 50, wyświetl "dwucyfrowa liczba zaczynająca się od 4" w przeciwnym razie "inne liczby".
[rozwiązania]
1. Please Add the JSTL tag lib on the top of the page.`
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>`
2. Please Write the following code
`
<c:choose>
<c:when test="${params.number >=40 && params.number <50}">
<p> Two digit number starting with 4. </p>
</c:when>
<c:otherwise>
<p> Other numbers. </p>
</c:otherwise>
</c:choose>`
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-27 08:11:34