Несоответствующий конечный тег - PullRequest
0 голосов
/ 31 мая 2018

У меня есть следующий код на моей странице xhtml:

<c:forEach var="item" items="${menu}">
  <c:choose>
    <c:when test="${fn:startsWith(item.key, 'startDropdown.')}">
      <c:set var="dropdown" scope ="session" value="true" />
      <c:set var="dropdownnaam" scope ="session" value="${fn:substringAfter(item.key, 'startDropdown.')}" />
            <li class="nav-item dropdown"><a id="${dropdownnaam}" href="#" role="button" class="nav-link dropdown-toggle" data-toggle="dropdown">#{i18nTeksten.tekst(item.value)}<b class="caret"></b></a>
              <div class="dropdown-menu dropdown-menu-center" aria-labelledby="${dropdownnaam}">
    </c:when>
    <c:when test="${item.key.equals('endDropdown')}">
      <c:set var="dropdown" scope ="session" value="false"/>
              </div>
            </li>
    </c:when>
    <c:when test="${dropdown.equals('true')}">
                <a class="dropdown-item" href="#{item.key}">#{i18nTeksten.tekst(item.value)}</a>
    </c:when>
    <c:otherwise>
            <li class="nav-item"><a class="nav-link" href="#{item.key}">#{i18nTeksten.tekst(item.value)}</a></li>
    </c:otherwise>
  </c:choose>
</c:forEach>

При его использовании я получаю следующую ошибку:

Трассировка ошибки [строка: 29] Элементтип "div" должен заканчиваться соответствующим конечным тегом "".

Когда я удаляю следующие строки (8-10)

</c:when>
<c:when test="${item.key.equal('endDropdown')}">
  <c:set var="dropdown" scope ="session" value="false"/>

, тогда все работает нормально (Я пока не использую функцию «выпадающий».Я предполагаю, что это связано со способом синтаксического анализа xhtml.

Существует (простой / стандартный) способ решения / обхода этой проблемы или лучше поместить эту логику в класс Java насервер?

1 Ответ

0 голосов
/ 31 мая 2018

Если

<c:when test="${item.key.equal('endDropdown')}">

ложно, то нет конца div

, возможно, вы хотите переместить его после </c:when>

или указать другоеwhen тег для обозначения выше false

...