首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不匹配的结束标记

不匹配的结束标记
EN

Stack Overflow用户
提问于 2018-05-31 15:18:52
回答 1查看 146关注 0票数 0

我的xhtml页面中有以下代码:

代码语言:javascript
复制
<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)时

代码语言:javascript
复制
</c:when>
<c:when test="${item.key.equal('endDropdown')}">
  <c:set var="dropdown" scope ="session" value="false"/>

然后一切正常(我还没有使用'dropdown‘功能)。我认为这与xhtml的解析方式有关。

有没有一种(简单/标准的)方法来解决/绕过这个问题,还是把这个逻辑放在服务器上的Java类中更好?

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 15:23:03

如果

代码语言:javascript
复制
<c:when test="${item.key.equal('endDropdown')}">

为false,则没有end div

也许你想把它移到</c:when>之后

或者为以上代码为false时提供另一个when标记

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50618785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档