Acesso as propriedades dos componentes JSF e Primefaces no ManagedBean

Olá Pessoal,
Blz…

Estive estundo em alguns sites, que é possível setar as propriedades dos componentes do primefaces ou JSF, de dentro do ManagedBean, exemplo:

<p:CommandButton id=“btnOK” binding=“meuBean.mudaLabel” />


ManagedBean:
imports…

@ManagedBean
public class CandidatoBean implements Serializable {

private CommandButton botaoBean;

public void mudaLabel(CommandButton botao){
	this.boatoBean = botao;
	this.botaoBean.setLabel("Seus dados foram enviados");
	this.botaoBean.setDisabled(true);
}

}

Existe uma forma de fazer isso? Sei que posso fazer isso com jQuery, mas gostaria de executar algumas verificações na camada server e de lá mesmo setar as propriedades…

Abs,
Marcelo

O binding vc tem q ligar ao componente do bean… assim:

<p:CommandButton id="btnOK" binding="meuBean.botaoBean" />

E então, vc precisa de uma maneira pra chamar o método mudaLabel…

vc nao vai precisar receber o objeto commandbutton.

instancia ele no seu bean depois faz a amarração, por final ao executar certa ação vc muda as propriedades do botao e atualiza ele

Então cara, foi exatamente o que eu fiz, veja meu código:

package portal.controladores;

import javax.faces.bean.ManagedBean;
import org.primefaces.component.commandbutton.CommandButton;

@ManagedBean
public class MeusComponentes {

	private CommandButton btnEnviar;

	public CommandButton getBtnEnviar() {
		return btnEnviar;
	}

	public void setBtnEnviar(CommandButton btnEnviar) {
		this.btnEnviar = btnEnviar;
	}

	public void exemploBtn(){
		this.btnEnviar.setDisabled(true);
	}
	
}

Agora meu xhtml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	  xmlns:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core"
	  xmlns:ui="http://java.sun.com/jsf/facelets"
	  xmlns:p="http://primefaces.org/ui">
	<h:head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<title>Exemplo de Componentes</title>
	</h:head>
	<h:body>
		<h:commandButton binding="#{meusComponentes.btnEnviar}" value="Enviar" />
	</h:body>
</html>

Será que estou fazendo kaka… rsrsrs

Abs.
Marcelo

coloca a ação no botão:

   public void exemploBtn(){  
        this.btnEnviar.setDisabled(true);  
    }  

e usa o botão do prime p:commandButton

Olá Polverini,

Bingo… agora sim caiu a ficha… rsrsrs.

Valeu cara, vc ajudou pra caramba!!! Fico devendo essa.

Obrigado à todos que deram uma força também…

Abs.
Marcelo