если ... еще в пределах 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 249

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>`