Как сравнить параметры в JSTL - PullRequest
3 голосов
/ 06 апреля 2011

У меня есть список идентификаторов из базы данных, и я передаю их в запросе сервлету, но я не могу сравнить их с каким-либо числом.

Я думаю, возможно, мне нужно преобразовать их в целочисленный тип:

    <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 ]

6 голосов
/ 06 апреля 2011
<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}">
2 голосов
/ 05 июня 2014

это должно быть <c:when test="${list.id == '1'}">
, если вы используете <c:when test='${list.id == "1"}'> будет сгенерировано исключение

0 голосов
/ 06 апреля 2011

попробуй

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