если ... еще в пределах JSP или JSTL
у меня есть один открытый вопрос..
Я хочу иметь HTML-код, основанный на условии (desktop/ipad)..скажите Условие 1 / Условие 2
Я хочу иметь отдельные фрагменты HTML для каждого из этих условий...
if (Condition 1)
Some HTML code for con1
else if (Condition 2)
Some HTML code for con2
условие, которое я хочу проверить (в JS);
var isiPad = navigator.userAgent.match(/iPad/i) != null;
if (isiPad)
{}
else
{}
теперь это должно быть реализовано в a .страница JSP...
Так как же мне это сделать? Должен ли я использовать JSTL ? Каков наилучший способ?
главная дело в том, что только соответствующий код должен быть загружен / визуализирован например, если условие 1 истинно, HTML-код в условии 2 не должен выполняться вообще (кроме скрытия в браузере)
8 ответов:
должен ли я использовать JSTL ?
да.
можно использовать
<c:if>
и<c:choose>
теги для выполнения условного рендеринга в jsp с помощью JSTL.моделирования если , вы можете использовать:
<c:if test="condition"></c:if>
моделирования если...иначе, вы можете использовать:
<c:choose> <c:when test="${param.enter=='1'}"> pizza. <br /> </c:when> <c:otherwise> pizzas. <br /> </c:otherwise> </c:choose>
Если вы просто хотите вывести другой текст, более конкретный пример будет
${condition ? "some text when true" : "some text when false"}
это намного короче, чем c: выберите.
конструкция для этого:
<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
теги-это облегчает чтение.
в случае, если вы хотите сравнивать строки, напишите следующий 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>
<%@ 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>
<%@ 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>
вы можете написать условие 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 <% } %>
Если вы действительно хотите выполните следующие действия с помощью тега JSTL Либе, пожалуйста, выполните следующие действия:
[требование] если число терка чем равный 40 и более низко чем 50 после этого показывает "номер 2 чисел начиная с 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>`