JSTL Условие с несколькими операторами - PullRequest
4 голосов
/ 02 февраля 2012

Я пытаюсь написать условие в JSTL с несколькими операторами.

<c:if test="${!memberObj.provider && empty subscriptions or subscriptions eq false}"></c:if>

Вышеуказанное не выполняется правильно, потому что "пустые подписки или подписки eq false" должны содержаться.

Я бы ожидал, что смогу сделать:

${!memberObj.provider && (empty subscriptions or subscriptions eq false)}

Но страница jsp становится пустой, когда я это делаю. Что, я думаю, означает, что что-то не так ...

Как объединить операторы "и" и "или" в одном условии в JSTL?

Заранее спасибо!

1 Ответ

3 голосов
/ 02 февраля 2012

Это выглядит правильно (хотя и немного неуклюже; несколько стилей смешаны, и это булево сравнение не требуется).

Браузер может отключиться при получении неверного HTML. Могу поспорить, что в коде есть еще какой-то Java-код, который выдает исключение, когда ответ уже зафиксирован. Поскольку ответ уже зафиксирован, сервер не сможет отобразить страницу с ошибкой во всей ее полноте (хотя он и запишет исключение). В результате браузер получит полуготовый ответ с неполным HTML, который браузер не сможет интерпретировать каким-либо разумным способом, поэтому он станет пустым.

...