I do have a simular problem with clientBehavor and primefaces ajax tag. When a clientBehavor is defined in the composite component and in the view the composite component is used with primefaces ajax then the clientBehavior is not added to the component but will added with faclet ajax. Did anyone face this ? Is there anything to be aware of maybe naming convention of the clienBehavior name ? I tried this with an trivial example with nothing defined but clientBehavior and i cannot get this work. We need the callback parameter provided by primefaces ajax tag. Is that an myfaces issue or primefaces related ?
Websphere 8.0.0.1 Myfaces 2.1.1 (i guess ) Primefaces 3.1 Send via Samsung Galaxy S2 -------- Ursprüngliche Nachricht -------- Betreff: Re: Custom tag Von: José Luis Cetina <[email protected]> An: MyFaces Discussion <[email protected]>,Rafael Pestano <[email protected]> CC:
--- Begin Message ---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 <[email protected]>: > 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 <[email protected]> > Para: MyFaces Discussion <[email protected]> > 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 <[email protected]>: >> 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 <[email protected]>: >>> 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 <[email protected]> >>> Para: MyFaces Discussion <[email protected]> >>> 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 <[email protected]> >>> Para: MyFaces Discussion <[email protected]> >>> 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 -------------------------------------------------------------------
--- End Message ---

