Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / jstl c:if пробел в условии / 3 сообщений из 3, страница 1 из 1
13.06.2012, 12:29:51
    #37836161
NorthDragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl c:if пробел в условии
Натолкнулся на странное поведение jstl.


Есть условие:

Код: java
1.
2.
3.
                            <c:if test="${fn:length(sessionScope.collection) != 0} ">
                                Not Empty!!!
                            </c:if>



Коллекция в сессии лежит, но условие не срабатывает.
Как оказалось из-за пробела на конце условия. Если убрать - все ок.


Кто подскажет это фича или баг?

Правильное условие:


Код: java
1.
2.
3.
                            <c:if test="${fn:length(sessionScope.collection) != 0}">
                                Not Empty!!!
                            </c:if>
...
Рейтинг: 0 / 0
13.06.2012, 13:37:35
    #37836272
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl c:if пробел в условии
"<c:if" выполняется в случае, когда атрибут test равен true, являясь типом boolean или Boolean (JSR-52, 5.2).
Согласно приложению А.7 той же спецификации (а точнее - А.7.4 - Coerce A to Boolean):
Код: plaintext
1.
2.
3.
4.
If A is null or "", return false
Otherwise, if A is Boolean, return A
Otherwise, if A is String, and Boolean.valueOf(A) throws exception, error.
Otherwise. if A is String return Boolean.valueOf(A)
otherwise, error
Твоя результирующая строка будет "true ".
Можешь сделать проверку и убедиться, что
Код: java
1.
2.
Boolean.valueOf("true") == true;
Boolean.valueOf("true ") == false;


Поэтому никаких фич или багов, все чистенько.
...
Рейтинг: 0 / 0
13.06.2012, 13:45:58
    #37836300
NorthDragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl c:if пробел в условии
IDVsbruckПоэтому никаких фич или багов, все чистенько.

Спасибо, за обьяснение.
Похоже на правду.

Насчет, все чистенько - сомневаюсь....
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / jstl c:if пробел в условии / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]