如何比较JSTL中的参数

时间:2011-04-06 07:46:06

标签: java jsp jstl el

我有来自数据库的ID列表,并在请求中将它们传递给servlet,但我无法将它们与任何数字进行比较。

我想也许我必须将它们转换为整数类型:

    <c:forEach items="${subjec.id}" var="x">
${x}
  </c:forEach>
<c:forEach items="${listPage}" var = "list">
${list.id} 
<c:choose>
<c:when test="${list.id} == 1">

</c:when>
</c:choose>

</c:forEach>
<c:if test="${subject1.id == 1}"> 
${subject1.id}
</c:if>

但是,我无法根据Integer格式进行测试。这种情况的任何建议吗?

3 个答案:

答案 0 :(得分:6)

<c:when test="${list.id} == 1">

这是错误的。您需要将整个表达式放在${}

如果getId()返回Number(整数,长整数等),请使用以下内容:

<c:when test="${list.id == 1}">

或者,如果它返回String(顺便说一下是不自然的),请使用以下内容:

<c:when test="${list.id == '1'}">

或者,如果它返回boolean(仅作为示例),则使用以下内容:

<c:when test="${list.id}">

答案 1 :(得分:2)

应该是<c:when test="${list.id == '1'}">
如果使用<c:when test='${list.id == "1"}'>将抛出异常

答案 2 :(得分:-1)

<c:when test='${list.id == "1"}'>