[RESOLVIDO]JSF: Binding: Não realiza binding de CommandLink na primeira vez que a página é carregada

Olá, pessoal!
Tenho um botão que deve ser dinâmico e gostaria de manipulá-lo no meu backing bean. Para tal, “amarrei-o” utilizando a propriedade binding, como segue:

<h:commandLink id="btnManutAtrib" binding="#{lanctosManuaisBean.manutAtributosBindingModel.btnConfirm}"
	styleClass="buttonRodape marginL_15px"
	onclick="if (validateForm(document.forms[0])) document.forms[0].submit(); else return false;"
	action="lancto_manual_manut_atrib" />

Só para contextualizar: Este botão está em uma jsp chamada manutAtrib.jsp, a qual é invocada a partir de uma jsp chamada pesqLancto.jsp. Nesta página de pesquisa, o botão que invoca manutAtrib.jsp tem um actionListener cadastrado, chamado manutAtribPerformed. É no manutAtribPerformed que (creio que seja esse o momento correto, né?) tento obter a instancia do meu link btnManutAtrib, como segue:

public void manutencaoAtributosPerformed(ActionEvent event) {
//	alguns códigos aqui....
	HtmlCommandLink input = getManutAtributosBindingModel().getBtnConfirm();
	if (input != null) {
		input.setRendered(true);
		input.setValue(SiteUtil.getFacesMessage("botao_confirmar"));
		input.setTitle(SiteUtil.getFacesMessage("botao_confirmar"));
	}
}

getManutAtributosBindingModel() retorna um outro bean, que utilizo apenas para separar as coisas. Ele seria responsável por guardar os bindings. No caso, btnConfirm é utilizado para guardar a referencia para o meu link.
Porém, quando é a primeira vez que a jsp manutAtrib.jsp é carregada, getManutAtributosBindingModel().getBtnConfirm() me retorna null. Se eu volto para a página anterior, e entro novamente em manutAtrib.jsp, aí beleza: getManutAtributosBindingModel().getBtnConfirm() retorna o link certinho, inclusive com as propriedades que eu fixei na jsp.
O que diabos estou fazendo de errado? Ou este comportamento (“não realizar o binding” na primeira vez que carrega a página) é normal?

Valeu galera!

Olha, não sei se é este teu problema e etc.

Mas vc está INSTANCIANDO o btnConfirm no Bean? No construtor do objeto ou sei lá onde??

[quote=CintiaDR]Olha, não sei se é este teu problema e etc.

Mas vc está INSTANCIANDO o btnConfirm no Bean? No construtor do objeto ou sei lá onde??
[/quote]
É… Aparentemente era isso mesmo. Eu não o estava fazendo pois achava que o jsf leria o jsp, instanciaria o componente com base nas informações da jsp, e só depois iria até o componente “amarrado”. Mas pelo que vi, e como você acaba de confirmar, eu necessito instanciar antes o componente lá naquele meu ManutAtributosBindingModel.
Utilizei [color=darkblue]sua dica do outro post[/color] e, graças à sua ajuda, tá tudo funcionando ok!
Obrigado mais uma vez, Cintia!

Ah, fico feliz que funcionou :slight_smile:

Mas é a lógica assim mesmo, vc instancia no MBean e daí o JSF lê e renderiza. Na “volta”, ele seta esta variável de novo, da mesma maneira que é com strings, etc etc etc 8)