Bom dia pessoal
Sou iniciante em Jsf e tenho uma dúvida que está me perturbando. Criei uma tela simples de login com 2 InputTexts e um CommandButton, da seguinte maneira
<h:form>
<h:outputLabel for="nome" value="Nome:"/>
<h:inputText id="nome" value="#{usuario.nome}" binding="#{usuario.uiNome}" valueChangedListener="#{usuario.updateNome}"/>
<h:outputLabel for="senha" value="Senha:"/>
<h:inputText id="senha" value="#{usuario.senha}" binding="#{usuario.uiSenha}" valueChangedListener="#{usuario.updateSenha}"/>
<h:commandButton value="entrar" binding="#{usuario.uiBtnEntrar}">
</h:form>
o meu managerBean foi escrito assim
public class Usuario{
private HtmlInputText uiNome;
private HtmlInputText uiSenha;
private HtmlCommandButton uiBtnEntrar;
private String nome;
private String senha;
public void setUiNome(HtmlInputText nUINome){
this.uiNome = nUINome;
}
public void setUiSenha(HtmlInputText nUISenha){
this.uiSenha = nUISenha;
if( this.uiSenha != null){
this.uiSenha.setDisabled(true);
}
}
public void setUiBtnEntrar(HtmlCommandButton nUIBtnEntrar){
this.uiBtnEntrar = nUIBtnEntrar;
if( this.uiBtnEntrar != null){
this.uiBtnEnrar.setDisabled(true);
}
}
public void updateNome(ValueChangedEvent ev){
this.uiSenha.setDisabled(false);
}
public void updateSenha(ValueChangedEvent ev){
this.uiBtnEntrar.setDisabled(false);
}
// outros metodos get e set omitidos
}
só que ao executar o programa apenas o valueChangedListener do nome executa os outros não executam, ou seja
ao digitar o nome o campo senha fica habilitado, mas ao digitar a senha o campo senha volta a ficar desabilitado e o
btnEntrar não é habilitado, voltando ao estado de quando a aplicação foi iniciada pela primeira vez. o escopo do meu manager bean
é session. O que devo fazer para que a aplicação funcione adequadamente?