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!