Hi leonardo, this example works: You can try the alternate syntax using "targets". For example:
<composite:interface> <composite:attribute name="action" targets="testComponent"/> </composite:interface> <composite:implementation> <h:commandButton id="testComponent" value="Press Me"/> </composite:implementation> but what about whit this: <composite:interface> <composite:attribute name="action" targets="testComponent"/> <composite:attribute name="action2" targets="testComponent2"/> </composite:interface> <composite:implementation> <h:commandButton id="testComponent" value="Press Me"/> <h:commandButton id="testComponent2" value="Press Me 2"/> </composite:implementation> Im triying to use the the action attribute <mycomp:test action="#{bean.myaction}" action2="#{bean.myaction2}"> </mycomp:test> this doesnt work (myaction2 never been invoke) i guess because the name of attribute is action2 an not action, but i already use action attribute for my first button, how can i resolve this? I want to have 2 buttons in my composite component, then my 2 buttons can have action method (using the attributes). Thanks 2012/6/29 Rafael Pestano <rmpest...@yahoo.com.br>: > you're welcome. Leonardo's approach is the solution, what i proposed was more > like a workaround ;) > > > > > Att, > > Rafael M. Pestano > > Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul > Graduando em Ciência da Computação UFRGS > http://code.google.com/p/jsf-conventions-framework/ > http://rpestano.wordpress.com > http://twitter.com/realpestano > > > > ________________________________ > De: José Luis Cetina <maxtorz...@gmail.com> > Para: MyFaces Discussion <users@myfaces.apache.org> > Enviadas: Sexta-feira, 29 de Junho de 2012 12:02 > Assunto: Re: Custom tag > > Thanks Rafael and Leonardo. > > Its very easy with target, this solution is best in my opinion. > > Works. > > Thanks again > > 2012/6/29 Leonardo Uribe <lu4...@gmail.com>: >> Hi >> >> You can try the alternate syntax using "targets". For example: >> >> <composite:interface> >> <composite:attribute name="action" targets="testComponent"/> >> </composite:interface> >> <composite:implementation> >> <h:commandButton id="testComponent" value="Press Me"/> >> </composite:implementation> >> >> Instead use EL, you can use the id hierarchy to locate the component. >> In this case, there will not be NullPointerException, because only if >> the property is set, the value is assigned. I have tested both syntax >> in MyFaces with tons of tests: >> >> http://svn.apache.org/repos/asf/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/tag/composite/ >> >> and it works without problem. >> >> regards, >> >> Leonardo Uribe >> >> 2012/6/29 Rafael Pestano <rmpest...@yahoo.com.br>: >>> again, >>> >>> <cc:implementation> >>> >>> <h:commandButton >>> value="Ok" rendered="#{not empty cc.attrs.action and empty >>> cc.attrs.actionListener}" >>> action="#{cc.attrs.action}" >>> /> >>> >>> >>> <h:commandButton >>> value="Ok" rendered="#{not empty cc.attrs.actionListener >>> and empty cc.attrs.action}" >>> actionListener="#{cc.attrs.actionListener}" >>> /> >>> >>> <h:commandButton >>> value="Ok" rendered="#{not empty cc.attrs.actionListener >>> and not empty cc.attrs.action}" >>> actionListener="#{cc.attrs.actionListener}" >>> action="#{cc.attrs.action}" >>> /> >>> >>> </cc:implementation> >>> >>> >>> Att, >>> Rafael M. Pestano >>> Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul >>> Graduando em Ciência da Computação UFRGS >>> http://code.google.com/p/jsf-conventions-framework/ >>> http://rpestano.wordpress.com >>> http://twitter.com/realpestano >>> >>> >>> >>> ----- Mensagem original ----- >>> De: Rafael Pestano <rmpest...@yahoo.com.br> >>> Para: MyFaces Discussion <users@myfaces.apache.org> >>> Cc: >>> Enviadas: Quinta-feira, 28 de Junho de 2012 23:12 >>> Assunto: Re: Custom tag >>> >>> you can try: >>> >>> <cc:implementation> >>> >>> <h:commandButton >>> value="Ok" rendered="#{not empty cc.attrs.action and empty >>> cc.attrs.actionListener}" >>> action="#{cc.attrs.action}" >>> /> >>> >>> >>> <h:commandButton >>> value="Ok" rendered="#{not empty cc.attrs.actionListener >>> and empty cc.attrs.action}" >>> actionListener="#{cc.attrs.actionListener}" >>> action="#{cc.attrs.action}" >>> /> >>> >>> <h:commandButton >>> value="Ok" rendered="#{not empty cc.attrs.actionListener >>> and not empty cc.attrs.action}" >>> actionListener="#{cc.attrs.actionListener}" >>> /> >>> >>> </cc:implementation> >>> >>> >>> >>> maybe it helps. >>> >>> Att, >>> >>> Rafael M. Pestano >>> >>> Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul >>> Graduando em Ciência da Computação UFRGS >>> http://code.google.com/p/jsf-conventions-framework/ >>> http://rpestano.wordpress.com >>> http://twitter.com/realpestano >>> >>> >>> >>> ________________________________ >>> De: José Luis Cetina <maxtorz...@gmail.com> >>> Para: MyFaces Discussion <users@myfaces.apache.org> >>> Enviadas: Quinta-feira, 28 de Junho de 2012 18:28 >>> Assunto: Custom tag >>> >>> Hi i have this: >>> >>> Simple custom tag: >>> >>> <cc: interface componentType="my_button" > >>> <cc:attribute name="action" method-signature="java.lang.String action()"/> >>> <cc:attribute name="actionListener" method-signature="void >>> actionListener(javax.faces.event.ActionEvent event)"/> >>> </ cc:interface> >>> >>> <cc:implementation> >>> <h:commandButton >>> value="Ok" >>> action="#{cc.attrs.action}" >>> actionListener="#{cc.attrs.actionListener}" >>> /> >>> </cc:implementation> >>> >>> Then in my page i do: >>> >>> <mytags:mybutton action="#{myBean.actionMethod}"/> >>> >>> But i get a NullPointerException, this is because im not setting the >>> actionListener attribute, but the thing is that sometimes i need or >>> only action or actionlistener not both, but i have to provided both if >>> not i get the nullpointer. >>> >>> >>> I have to do this, but the listener method is empty in my managedbean, >>> i only do this for avoid the nullpointer. >>> <mytags:mybutton action="#{myBean.actionMethod}" >>> actionListener="#{myBean.actionListenerMethod}"/> >>> >>> how can i avoid this? >>> >>> Thanks >>> >>> ------------------------------------------------------------------- >>> SCJA. José Luis Cetina >>> ------------------------------------------------------------------- >>> > > > > -- > ------------------------------------------------------------------- > SCJA. José Luis Cetina > ------------------------------------------------------------------- -- ------------------------------------------------------------------- SCJA. José Luis Cetina -------------------------------------------------------------------