比较JSTL标记中的两个List值

时间:2015-01-12 10:51:39

标签: java jsp if-statement jstl

我使用JSTL标记比较来自不同列表的两个不同的值,但我不断收到错误。我试图更改与之关联的括号,但都没有效果。我搜索了比较JSTL中的两个列表值,但没有人帮助我。

<c:forEach items="${commentsList}" var="commentsList">
    <c:choose>
        <c:when test="${ ${commentsList.user.id} == '${blog.user.id}' }">
            <li>
                <div class="timeline-panel" style="float:right">
                    <div class="timeline-heading" align="left">
                        <b>${commentsList.user.firstName}&nbsp;${commentsList.user.lastName}</b>
                    </div><hr>
                    <div class="timeline-body" style="float: right;">
                        <p>${commentsList.comment}</p>
                    </div>
                </div>
           </li>
       </c:when>                            
       <c:otherwise>
           <li class="timeline-inverted">
                <div class="timeline-panel">                                         
                    <b>${commentsList.user.firstName}&nbsp;${commentsList.user.lastName}</b><hr>
                    <div class="timeline-body">
                        <p>${commentsList.comment}</p>                                                  
                    </div>
                </div>
            </li>
        </c:otherwise>                              
    </c:choose>
</c:forEach>

错误是

"${ ${commentsList.user.id} == '${blog.user.id}' }" contains invalid expression(s): javax.el.ELException: Error Parsing: ${ ${commentsList.user.id} == '${blog.user.id}' }

我之前没有比较过两个列表值,顺便说一句,我可以比较jstl中的两个列表值吗?

2 个答案:

答案 0 :(得分:2)

还有一个额外的$。 试试这个:

<c:when test="${ commentsList.user.id eq blog.user.id}">

答案 1 :(得分:1)

你应该改为

<c:when test="${commentsList.user.id eq blog.user.id}">