Habilitar campo na tela JSF

Olá,

tenho uma tela de login e se o usuário ou senha for inválido mostro em um campo a mensagem…

Esse campo de mensagem fica aparecendo ao digitar o usuário e senha queria que ficasse oculto e aparecesse
quando o usuário ou senha for invalido…tem como fazer isso !!!

se alguém puder me ajudar …


       <ui:define name="body">
          <p:fieldset legend="Autentique-se">
             <h:form>
                <h:panelGrid columns="2">
                   <h:outputLabel for="username" value="usuário" />
                   <h:inputText id="username" value="#{loginMB.usuario}" />

                   <h:outputLabel for="password" value="senha" />
                   <h:inputSecret id="password" value="#{loginMB.senha}" />

                   <p:spacer />
                   <p:spacer />
                  
                   <p:spacer />
                   <h:commandButton value="Entrar" action="#{loginMB.login()}" />
                   <p:spacer />
                   <p:spacer />
                   
                   <h:outputLabel for="legenda" value="" />                   
                   <h:inputText id="legenda" value="#{loginMB.legenda}" readonly="true"/>                   
                </h:panelGrid>
             </h:form>
          </p:fieldset>
       </ui:define>

mb

public String login() {
      credentials.setUsername(this.getUsuario());
      credentials.setPassword(this.senha);
      //context.login();
      if (this.getUsuario().equals("paulo")) {
          return getNextView();
      }else {
    	  this.setLegenda("Usuário ou senha inválido!!!!!");
    	  return null;
      }
   }

O correto para mostrar mensagens de erros seria voce usar o Messages do JSF, pesquise sobre isto!

Cara… se não me engano o componente <h:inputtext> tem a propriedade enabled

se realmente tiver vc pode colocar uma verificação do tipo enabled="#{loginMB.login eq ‘falha’ }"