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

Reply via email to