Проверка длины строки в языке выражений

Я использую 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}"