I am using JSF and want to have a component that should be rendered only when the value of a String in the associated managed bean is greater than zero. I am doing this :
rendered="#{tabbedToolbarBean.editor.selectedQuery.length() gt 0}"
Additionally the signature of getter for selectedQuery
is public String getSelectedQuery(){}
. I get the following error with the latest version of weblogic server.
Error: Function length has an invalid prefix or uses the default namespace which is not defined. Correct the prefix or in a jsp document, put the function inside a tag that defines the tag library namespace
What am I missing?Not getting much help after googling.
This means that your environment doesn't support the new EL 2.2 feature of invoking non-getter methods with parentheses.
Your best bet is using JSTL's fn:length()
instead.
<html ... xmlns:fn="http://java.sun.com/jsp/jstl/functions">
...
rendered="#{fn:length(tabbedToolbarBean.editor.selectedQuery) gt 0}"
Alternatively, just use empty
keyword in EL. The difference is that it also checks nullness.
rendered="#{not empty tabbedToolbarBean.editor.selectedQuery}"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With