Could you please elaborate on why this is a preferred (or the only right) way of creating a component dynamically? Simeon
-----Original Message----- From: David Delbecq [mailto:[EMAIL PROTECTED] Sent: Monday, December 04, 2006 9:11 AM To: MyFaces Discussion Subject: Re: Newbie question: How to generate a jsf component dynamically Those calls (and other components you may create) are wrong: HtmlPanelGrid grid = new HtmlPanelGrid (); HtmlCommandLink link = new HtmlCommandLink (); To create component, use the FacesContext.getApplication().createComponent(componentType) call. example: import javax.faces.context.FacesContext; import javax.faces.component.html.HtmlCommandLink; .... HtmlCommandLink commandLink = (HtmlCommandLink)context.getApplication().createComponent(HtmlCommandLink.COMPONENT_TYPE); koshi a écrit : > Hi, first of all, thanks for all your post and ideas, i'm grateful for > your support. > > i decided to solve my problem this way > > in the view: > <h:panelGrid binding="#{managedBean.panelGrid}" /> > > the managed bean: > public HtmlPanelGrid getPanelGrid () > { > HtmlPanelGrid grid = new HtmlPanelGrid (); > .... > > for (Actions action : actions) { > > if (action.getType () == ActionTypes.COMMAND_LINK) { > HtmlCommandLink link = new HtmlCommandLink (); > link.setId (action.getId ()); > link.setTitle (action.getTitle ()); > > HtmlOutputText text = new HtmlOutputText (); > text.setValue (MessagesUtil.getMessage ("actions", > action.getTitle (), null)); > > link.getChildren ().add (text); > > MethodBinding method = > FacesContext.getCurrentInstance ().getApplication (). > createMethodBinding > (action.getValue (), null); > link.setAction (method); > grid.getChildren ().add (link); > } > } > return grid; > } > > but the commandLink doesn't work, and i have no idea of what is happening. > > if i put a commandLink into the panelGrid manually, then the > commandLink works fine. > > <h:panelGrid id="id" binding="#{managedBean.panelGrid}"> > <h:commandLink id = "asd" action="#{managedBean.action}"> > <h:outputText value="action name" /> > </h:commandLink> > </h:panelGrid> > > Thanks > ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ==============================================================================

