You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by José Luis Cetina <ma...@gmail.com> on 2012/06/28 23:28:54 UTC

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

Re: Custom tag

Posted by José Luis Cetina <ma...@gmail.com>.
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 <rm...@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 <ma...@gmail.com>
> Para: MyFaces Discussion <us...@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 <lu...@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 <rm...@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 <rm...@yahoo.com.br>
>>> Para: MyFaces Discussion <us...@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 <ma...@gmail.com>
>>> Para: MyFaces Discussion <us...@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
-------------------------------------------------------------------

Re: Custom tag

Posted by Rafael Pestano <rm...@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 <ma...@gmail.com>
Para: MyFaces Discussion <us...@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 <lu...@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 <rm...@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 <rm...@yahoo.com.br>
>> Para: MyFaces Discussion <us...@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 <ma...@gmail.com>
>> Para: MyFaces Discussion <us...@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
------------------------------------------------------------------- 

Re: Custom tag

Posted by José Luis Cetina <ma...@gmail.com>.
Thanks Rafael and Leonardo.

Its very easy with target, this solution is best in my opinion.

Works.

Thanks again

2012/6/29 Leonardo Uribe <lu...@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 <rm...@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 <rm...@yahoo.com.br>
>> Para: MyFaces Discussion <us...@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 <ma...@gmail.com>
>> Para: MyFaces Discussion <us...@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
-------------------------------------------------------------------

Re: Custom tag

Posted by Leonardo Uribe <lu...@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 <rm...@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 <rm...@yahoo.com.br>
> Para: MyFaces Discussion <us...@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 <ma...@gmail.com>
> Para: MyFaces Discussion <us...@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
> -------------------------------------------------------------------
>

Re: Custom tag

Posted by Rafael Pestano <rm...@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 <rm...@yahoo.com.br>
Para: MyFaces Discussion <us...@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 <ma...@gmail.com>
Para: MyFaces Discussion <us...@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
------------------------------------------------------------------- 


Re: Custom tag

Posted by Rafael Pestano <rm...@yahoo.com.br>.
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 <ma...@gmail.com>
Para: MyFaces Discussion <us...@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
-------------------------------------------------------------------