You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "Jesse Alexander (KBSA 21)" <al...@credit-suisse.com> on 2005/03/24 10:58:01 UTC

Custom Components with child-components

I have to create custom components that contain child components.
Eg:
 a layout component that will contain some HtmlCommandLink components

I think basically I have two choices:
a) do all the rendering myself
b) instantiate the child components and let them do their own rendering

a) has several bad smells ;-)

b) is my preferred way. But 

When I add a HtmlCommandLink to a JSP-page I use the h:commandLink tag and 
usually embed to other tags within: the f:param and the h:outputText.
How can I do this in my custom-component?  So far I have not found a method 
like: "xyz.addChild(UiComponent)" or similar.

Has somebody already gone that way or has somebody an idea about it?

thanks
Alexander

RE : Custom Components with child-components

Posted by Vincent Sevel <vs...@sqli.com>.
Any way we could delegate the construction of the children component
tree to a JSP rather than building the tree programmatically?

Something like :
	myComponent.getChildren().add(process("/myComponentBody.jsp"))

Allowing a mapping between pseudo-beans used in this JSP (like foo in
#{fooBean.bar}) and real beans that would be used by the client of our
component would also add a great deal of flexibility to our component
(kind of like myfaces aliasBean):

<!-- client.jsp -->
<myComponent fooBean="#{myRealBean}"/>

---------------------------

<!-- myComponentBody.jsp -->
<h:inputText value="#{fooBean.bar}"/>

This would greatly simplify development of reusable panels.

Vince

-----Message d'origine-----
De : Craig McClanahan [mailto:craigmcc@gmail.com] 
Envoyé : jeudi, 24. mars 2005 16:52
À : MyFaces Discussion
Objet : Re: Custom Components with child-components

Option b is definitely the correct answer.  To add a child:

    myComponent.getChildren().add(childComponent);

Craig



On Thu, 24 Mar 2005 10:58:01 +0100, Jesse Alexander (KBSA 21)
<al...@credit-suisse.com> wrote:
> I have to create custom components that contain child components.
> Eg:
>  a layout component that will contain some HtmlCommandLink components
> 
> I think basically I have two choices:
> a) do all the rendering myself
> b) instantiate the child components and let them do their own
rendering
> 
> a) has several bad smells ;-)
> 
> b) is my preferred way. But
> 
> When I add a HtmlCommandLink to a JSP-page I use the h:commandLink tag
and
> usually embed to other tags within: the f:param and the h:outputText.
> How can I do this in my custom-component?  So far I have not found a
method
> like: "xyz.addChild(UiComponent)" or similar.
> 
> Has somebody already gone that way or has somebody an idea about it?
> 
> thanks
> Alexander
>


Re: Custom Components with child-components

Posted by Craig McClanahan <cr...@gmail.com>.
Option b is definitely the correct answer.  To add a child:

    myComponent.getChildren().add(childComponent);

Craig



On Thu, 24 Mar 2005 10:58:01 +0100, Jesse Alexander (KBSA 21)
<al...@credit-suisse.com> wrote:
> I have to create custom components that contain child components.
> Eg:
>  a layout component that will contain some HtmlCommandLink components
> 
> I think basically I have two choices:
> a) do all the rendering myself
> b) instantiate the child components and let them do their own rendering
> 
> a) has several bad smells ;-)
> 
> b) is my preferred way. But
> 
> When I add a HtmlCommandLink to a JSP-page I use the h:commandLink tag and
> usually embed to other tags within: the f:param and the h:outputText.
> How can I do this in my custom-component?  So far I have not found a method
> like: "xyz.addChild(UiComponent)" or similar.
> 
> Has somebody already gone that way or has somebody an idea about it?
> 
> thanks
> Alexander
>