JSP中c:choose的问题

时间:2018-12-20 16:33:54

标签: jsp jstl

我正在学习JSP,并且遇到一种奇怪的情况,我真的不了解发生了什么。

我需要创建一个简单的菜单,并且正在接收引用活动页面的菜单项的标识符作为参数,即该菜单项应显示为简单文本而不是链接,菜单的代码如下:

<nav class="application-menu">
    <ul>
        <c:choose>
            <c:when test="${param.activePage eq 'home'}">
                <li>Home</li>
            </c:when>
            <c:otherwise>
                <li><a href="./">Home</a></li>
            </c:otherwise>
        </c:choose>
        <c:choose>
            <c:when test="${param.activePage eq 'search'}">
                <li>Search</li>
            </c:when>
            <c:otherwise>
                <li><a href="search.html">Search</a></li>
            </c:otherwise>
        </c:choose>
        ...
    </ul>
</nav>

在此示例中,我收到search作为activePage参数,但是以某种方式接受了两个条件,因此页面上显示的菜单如下所示:

Home <a ...>Home</a> Search <a ...>Search</a>

有人知道什么可能导致此问题吗?

编辑1: 我已经尝试更换
c:otherwise by c:when test="${param.activePage ne 'home'}"
它的工作方式相同。

1 个答案:

答案 0 :(得分:0)

我的问题是缺少关于此问题jstl tag <c:forEach is not working的JSTL指令。

为JSTL添加taglib时,它开始正常工作。