What is the syntax for calling list.size() in a JSF 2.0 Facelets template (eg, using an h:outputText element)?
How do you call List.size() from a JSF 2.0 Facelets Template?
Possible duplicate: https://mcmap.net/q/181564/-how-do-you-get-the-length-of-a-list-in-the-jsf-expression-language –
Straight
@Straight - While that does contain one reasonable answer (that should work with JSF 2.0, though the answer predates it), I'm asking this question specifically to find out if there are any updates to JSF 2.0 that could affect the solution. :) –
Cynthia
How about this:
<h:outputText value="#{fn:length(someBean.someList)}" />
You'll need to reference the functions
taglib in your JSF page (URI: http://java.sun.com/jsp/jstl/functions
).
Just try #{myBean.myList.size()}
That wouldn't work with standard el. There are el extensions though (such as jboss el) that allow this notation. –
Obeisance
Apparently that's not the case (to my astonishment): see community.jboss.org/thread/173971 –
Babel
It's not a problem with JSF 2.0 exactly. The JSF spec still requires a class that conforms to the bean spec. The collection classes don't do that with the .size()
method. It would still have to be .getSize()
.
Given the need for a "standard" way to access the class values, we're not getting around that in JSF any time soon. Somebody needs to fix the collection classes.
IC... I was hoping that they had reworked the expression syntax to allow method calls. It could be abused, but it would easily work around cases like this. :) I still don't understand why the collection class designer chose to do things this way. –
Cynthia
Note: The exact namespace for "fn" is added like this:
<html xmlns="http://www.w3.org/1999/xhtml"
...
xmlns:fn="http://java.sun.com/jsp/jstl/functions">
© 2022 - 2024 — McMap. All rights reserved.