Resolvido Duvida Primefaces 3

Boa tarde.
Estou trabalhando num projeto com primefaces 3.4 e gostaria de tirar um duvida, que é a seguinte, existe algum valor neutro no primefaces?
Por exemplo:
<p:commandButton actionListener="#{none}"/>
Pergunto isso, pois quero fazer um composite aonde cada tela irá escolha se usa ou não as opções disponíveis num botão (actionListener, onclick, update etc.), então quando passado esse valor neutro o botão ignora aquela opção.
É possível faze isso?

Pelo que entendi você pode utilizar o proprio conteudo do seu Bean para fazer isso.


public String getLink()
{
   if (condicao)
  {
      link = "nomeDaAction";
  }
  else
  {
      link = "#";
  }
  return link;
}

Dentro do seu Bean você controla para onde a ação vai, ou se não vai ter ação nenhum.
Não sei se era essa a dúvida, não consegui compreender direito.

Primeiro obrigado por responder, mas acredito que não consegui explicar muito bem o que eu estou tentando fazer.
É assim: imagina que tenho duas telas vão chamar um composite com um botão, a tela 1 vai usar o update e o onclick do botão e a tela 2 vai usar actionListener e o onstar do mesmo botão. Então eu queria mandar algum valor neutro pra o actionListener e o onstar quando abrisse a Tela 1 e um valor neutro para o update e o onclick quando abrisse a Tela 2, assim eu uso o mesmo botão para as duas.
Isso é possível?

Javaimae,

Não creio que isso funcione dessa forma que você colocou. Já fiz algo semelhante a isso, mas da seguinte forma:

<p:commandButton actionListener="#{bean.acao}" rendered="#{bean.tela == 1}"/> 
<p:commandButton actionListener="#{bean.acao2}"  rendered="#{bean.tela == 2}"/> 

O botão será exibido apenas quando o rendered for true. Dessa forma dá para fazer o que vc quer.

<p:commandButton actionListener="#{bean.acao}" rendered="#{bean.tela == 1}"/> 
<p:commandButton onclick="acao()"  rendered="#{bean.tela == 2}"/> 

Porque mesmo se você passar um valo nulo para actionListener ele vai ser executado e fará o reload da página.

Boa Tarde resolvi o problema, mas não pude postar antes .
O código ficou assim

<cc:interface> 
        <cc:attribute name="update" default="@none"/>
        <cc:attribute name="action" method-signature="void method()" default="null"/>
        <cc:attribute name="onstart" default="null"/>
</cc:interface>
<cc:implementation>
			 <p:commandButton value="teste" update="#{cc.attrs.update}" actionListener="#{cc.attrs.action}" onstart="#{cc.attrs.onstart}"/>
</cc:implementation>

Desse jeito não é obrigatório passar os valores de nenhuma das propriedades implementadas no botão (Update, ActionListener e Onstart). Por exemplo se não for passado o cc.attrs.action para o composite o actionListener vai ser ignorado, sendo assim o botão fica mais genérico