I have to dinamically produce a list of tables. Each of these have a variable number of columns (with fixed rows).
To perform this I first put a
The transition from the XHTML source code to the generated HTML output is a two-step process.
First, during view build time, the XHTML source code is parsed and turned in a tree of Java UIComponent instances representing the JSF UI component tree, as available by FacesContext#getViewRoot().
Then, during view render time, the JSF UI component tree produces HTML output and writes it to the HTTP resopnse, starting with UIViewRoot#encodeAll() method.
Taghandlers like all JSTL tags, several JSF tags and only a few Facelets tags run during view build time. UI components like all JSF tags, several Facelets tags and only a few JSF tags run during view render time.
The
In other words, the UI components which are declared inside are recreated multiple times in the JSF component tree based on during view build time which in turn individually produce each their own HTML output during view render time. The UI components which are declared inside are created only once in the JSF component tree during view build time which in turn are reused multiple times based on to produce HTML output during view render time.
Your concrete problem is caused by the fact that is only available during view render time, not during view build time. The is basically retrieving a #{null} as value when it's about to run during view build time.
You can solve this by replacing the outer by . Although I wonder if you couldn't better use instead.