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