If... else внутри JSP или JSTL
Я хочу вывести некоторый HTML-код, основанный на некоторых условиях, в файле JSP.
if (condition 1) {
Some HTML code specific for condition 1
}
else if (condition 2) {
Some HTML code specific for condition 2
}
Как я могу это сделать? Должен ли я использовать JSTL?
Ответы
Ответ 1
Должен ли я использовать JSTL?
Да.
Вы можете использовать теги <c:if>
и <c:choose>
для выполнения условного рендеринга в jsp с использованием JSTL.
Чтобы имитировать , если, вы можете использовать:
<c:if test="condition"></c:if>
Чтобы имитировать , если... else, вы можете использовать:
<c:choose>
<c:when test="${param.enter=='1'}">
pizza.
<br />
</c:when>
<c:otherwise>
pizzas.
<br />
</c:otherwise>
</c:choose>
Ответ 2
Если вы просто хотите вывести другой текст, более кратким примером будет
${condition ? "some text when true" : "some text when false"}
Это путь короче c: выберите.
Ответ 3
Конструкция для этого:
<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>
Если условие не дорогое, я иногда предпочитаю просто использовать два разных тега <c:if
- это упрощает чтение.
Ответ 4
Если вы хотите сравнить строки, напишите следующий 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>
Ответ 5
<%@ 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>
Ответ 6
простой способ:
<c:if test="${condition}">
//if
</c:if>
<c:if test="${!condition}">
//else
</c:if>
Ответ 7
<%@ 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>
Ответ 8
Если вы хотите сделать следующее, используя JSTL Tag Libe, выполните следующие действия:
[Требование], если число больше, чем равное 40 и ниже 50, тогда отобразите "Двузначное число, начинающееся с 4", иначе "Другие номера".
[Решения]
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>`
Ответ 9
Вы можете написать условие if-else внутри <% %>
%% <% %>
на страницах jsp и html-код вне <% %>
Например:
<%
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
<%
}
%>
Ответ 10
У меня была та же проблема, и я подумал, что вы не можете использовать Javascript в JSTL, если условие.
Вид обходного пути может быть в Javascript:
<script>
var isiPad = navigator.userAgent.match(/iPad/i) != null;
if (isiPad) {
document.write("Some HTML code for con1");
} else {
document.write("Some HTML code for con2");
}
</script>
Вам нужно будет поместить этот скрипт в тот HTML-код, который вы хотите написать.
Ответ 11
Если вы хотите сравнить строки, напишите следующий 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>
Ответ 12
<c:choose>
<c:when test="${not empty userid and userid ne null}">
<sql:query dataSource="${dbsource}" var="usersql">
SELECT * FROM newuser WHERE ID = ?;
<sql:param value="${param.userid}" />
</sql:query>
</c:when>
<c:otherwise >
<sql:query dataSource="${dbsource}" var="usersql">
SELECT * FROM newuser WHERE username = ?;
<sql:param value="${param.username}" />
</sql:query>
</c:otherwise>