JSTL презентация проблема - если утверждение - PullRequest
0 голосов
/ 01 апреля 2011

Мне нужно представить столбцы на основе значения, извлеченного из массива.

<c:forEach items="${row}" var="cell">
        <c:if test="${(cell != 'Read') || (cell !='Write')}" >
            <td id="access">${cell}</td>
        </c:if>
        <c:if test="${(cell == 'Read') || (cell =='Write')}" >
            <td>${cell}</td>
        </c:if>

</c:forEach>

У меня есть 3 типа значений в ячейке: чтение, запись и другие.Для других это входит в условие! =, Но для чтения и записи оно удовлетворяет обоим операторам if.Я не смог использовать if-else.Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011

Вот эквивалентный оператор if-else вашего кода, если второй IF в вашем коде - ELSE.

<c:forEach items="${row}" var="cell">
    <c:choose>
        <c:when test="${cell ne 'Read' or cell ne 'Write'}">
            <td id="access">${cell}</td>
        </c:when>
        <c:otherwise>
            <td>${cell}</td>
        </c:otherwise>
    </c:choose>
</c:forEach>

Проверьте ваше условное заявление в IF. Как voidnnull указать на ваш первый IF вместо использования || (или) используйте && (и).

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

Это потому, что вы используете оператор || в первом тестовом условии.

Используйте оператор &&, и он будет работать как положено.<c:if test="${(cell != 'Read') && (cell !='Write')}" >

Кроме того, для конструкции if-else, использующей JSTL, используйте тег <c:choose>, в котором можно использовать <c:when> и <c:otherwise>.Они работают аналогично if-else.

Пример: http://www.exampledepot.com/egs/javax.servlet.jsp.jstl.core/if.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...