Проверка длины строки в языке выражений
Я использую JSF и хочу иметь компонент, который должен отображаться только тогда, когда значение строки в связанном управляемом компоненте больше нуля. Я делаю это :
rendered="#{tabbedToolbarBean.editor.selectedQuery.length() gt 0}"
дополнительно подпись геттера для selectedQuery
is public String getSelectedQuery(){}
. Я получаю следующую ошибку с последней версией weblogic server.
ошибка: длина функции имеет недопустимый префикс или использует значение по умолчанию пространство имен, которое не определено. Исправить префикс или in JSP-страница document, поместите функцию внутри тега, который определяет библиотеку тегов пространство имен
что я упустил?Не получаю большой помощи после гугления.
2 ответов
это означает, что ваша среда не поддерживает новую функцию EL 2.2 вызова методов non-getter с круглыми скобками.
лучше всего использовать JSTL в fn:length()
вместо.
<html ... xmlns:fn="http://java.sun.com/jsp/jstl/functions">
...
rendered="#{fn:length(tabbedToolbarBean.editor.selectedQuery) gt 0}"
как вариант, просто использовать empty
ключевое слово в EL. Разница в том, что он также проверяет пустоту.
rendered="#{not empty tabbedToolbarBean.editor.selectedQuery}"
Читайте также:
попробуйте функцию JSTL fn:length ():
rendered="#{fn:length(tabbedToolbarBean.editor.selectedQuery) gt 0}"