2017-01-17 4 views
-1

Я пытаюсь использовать <c:forEach> и <c:if> в <c:choose>. Мой первоначальный план состоял в том, когда размер списка равен 0, тогда он показывает «нет результата», и если он не показывает вещи в списке. Однако, похоже, всякий раз, когда я использую <c:choose>, страница не загружается должным образом, даже ${param} не улавливает параметры.JSTL c: выберите и mutiple c: forEach, c: if issue

Вот мой код. Первая часть - это то, где я использую $ {param}, она отлично работает, когда нет <c:choose>.

<select class="myselect" id="type_size" name="type_size"> 
     <c:if test="${param.type_size eq null}"> 
      <c:forEach var="i" begin="2" end="6" step="2"> 
       <option value="${i}">${i}</option> 
      </c:forEach> 
     </c:if> 
    <c:if test="${param.type_size ne null}"> 
     <option value=" ${param.type_size}"> ${param.type_size}</option> 
    </c:if> 
</select> 

Вот код с <c:choose><c:forEach> так на

<div class="container> 
<c:if test="${item[0].getRoom_no eq null}"> 
    <div class="row_room"> 
     <div class="item"> 
      There is no result available at this moment. 
     </div> 
    </div> 
</c:if> 
    <c:if test="${item[0].getRoom_no ne null}">  
    <c:forEach var="tmp" items="${item}" varStatus="idx"> 
    <c:if test="${idx.index%3==0}"> 
    <div class="row"> 
    </c:if> 
    <div class="item"> 
<div class="media"> 
<img src="resources/room_img/${tmp.getRoom_img01()}"/> 
    </div><!-- media end --> 
    <div class="row"> 
     </c:if> 
      <h4>${tmp.getRoom_no()} | ${tmp.getType_name()} </h4> 
      <button type="button" onclick="location.href='roomView?checkin=${param.checkin}&checkout=${param.checkout}&type_size=${param.type_size}&room_no=${tmp.getRoom_no()}'">reserve</button> 
    </div><!-- row end --> 
    <c:if test="${idx.index%3 == 2 || idx.index == end}"> 
    </div> 
    </div><!-- row end --> 
    </c:if> 
    </c:forEach> 
    </c:otherwise> 
    </c:if> 
    </c:choose> 
    </div><!-- container end --> 

ответ

1

Некоторые синтаксические ошибки я нашел:

  • пропавшим без закрытия кавычек: <div class="container> должно быть <div class="container">.
  • Я не вижу никаких открывающих тегов для <c:choose> и <c:otherwise>. <c:when> также отсутствует.

Основная конструкция выбор, когда в противном случае это:

<c:choose> 
    <c:when test="${something eq 0}"> 
     something is zero 
    </c:when> 
    <c:when test="${something gt 0}"> 
     something is positive 
    </c:when> 
    <c:otherwise> 
     something is negative 
    </c:otherwise> 
</c:choose> 

Там может быть больше ошибок, но я не могу видеть из-за плохой тег углубления/формата.
Это также означает, что код в этой форме не поддерживается.
Рассмотрите возможность перемещения логики if-else на сервлет/класс и пусть jsp просто отобразит данные.

 Смежные вопросы

  • Нет связанных вопросов^_^