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 -------------------------------------------------------------------