6

我正在使用 JSF,并且希望只有当关联托管 bean 中的字符串值大于零时才应该呈现一个组件。我正在这样做:

rendered="#{tabbedToolbarBean.editor.selectedQuery.length() gt 0}"

此外,getter for 的签名selectedQuerypublic String getSelectedQuery(){}. 使用最新版本的 weblogic 服务器时出现以下错误。

错误:函数长度具有无效前缀或使用未定义的默认命名空间。更正前缀或在jsp文档中,将函数放在定义标签库命名空间的标签内

我错过了什么?谷歌搜索后没有得到太多帮助。

4

2 回答 2

9

这意味着您的环境不支持使用括号调用非 getter 方法的新 EL 2.2 功能。

您最好的选择是使用 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}"

也可以看看:

于 2013-03-29T13:21:43.397 回答
3

试试 JSTL fn:length() 函数:

rendered="#{fn:length(tabbedToolbarBean.editor.selectedQuery) gt 0}"
于 2013-03-29T13:22:15.463 回答