Hi Piercarlo,
there is a dirty trick with Facelets: it evaluates the EL for any ID only the first time - while the tag tree is evaluated and components are created if needed (there is a component cache idea behind this concept).
This occurs during the "apply" deep scan (view building at render time).
Someone call it "Facelets compilation" - but in my opinion this is misleading. At the same time it's somewhat misleading that tag libraries documentation usually reports "supports EL ? no" for the component ID attribute (e.i. Trinidad). Having said that - there is a simple trick with Facelets to force recreation of any component ID whenever necessary: get the component parent through the "binding" attribute, then clean its children when needed, something like "boundParent.getChildren().clear()". This way at rendering time the view creation will build the target component again - and Facelets will ask the bean to provide (possibly new) EL parameters. This applies to any case when we deal with so-called "compile-time" parameters (e.i. c:forEach loop is another good example).
Hope it helps,

-- Renzo Tomaselli


Pierandrea Cercato wrote:
I tried first (see the first post) without any facelets component but was not working. Then as suggested i created a facelts component but i was not successful anyway. Is there anyway to pass a dynamic id to a component? Please any idea?


Reply via email to