Como desabilitar/ou so leitura um input text em jsf/primefaces 2.2.1 por variavel no readonly

 <h:inputText id="email" value="#{UserBean.email}" >
                                    <p:ajax event="blur" listener="#{UserBean.VerificarEmail2}"
                                            process="email" update="mensagens:mensagem"/>
                                </h:inputText>
                                
                                <h:outputLabel value="CONFIRMAR EMAIL:*"/>
                                <h:inputText id="email2" value="#{UserBean.email2}"
                                             readonly="#{UserBean.campoEmail}"/>

entao nakele verificaremail, se caso o email nao passar queria deixar o ‘CONFIRMAR EMAIL’ para somente leitura, algum mudo do usuario nao poder digitar.

vlww a todos

O que você fez está correto, sócriar aquela variável campoEmail como Boolean no Bean e ao processar o ajax dar update no campo email2, pq se não ele não vai renderizar

eu fiz mano num deu certo

so da certo se eu setar o private boolean campoEmail = true;

 <h:inputText id="email" value="#{UserBean.email}" >
                                    <p:ajax event="blur" listener="#{UserBean.VerificarEmail2}"
                                            process="email" update="mensagens:mensagem"/>
                                </h:inputText>
                                
                                <h:outputLabel value="CONFIRMAR EMAIL:*"/>
                                <h:inputText id="email2" value="#{UserBean.email2}"
                                             readonly="#{UserBean.campoEmail}" rendered="true" >
                                    <p:ajax update="email2" />
                                </h:inputText>
 if(user.selectUser(email) == true)
          {
               FacesContext.getCurrentInstance().addMessage(null,
                     new FacesMessage(FacesMessage.SEVERITY_INFO,
                     "Usuario já existe", null));
              setCampoEmail(true);
               campoEmail = true;

               
          }

[code]
<p:inputText id=“email” value="#{UserBean.email}" >
<p:ajax event=“blur” listener="#{UserBean.VerificarEmail2}"
process=“email” update=“email2”/>
</p:inputText>

     <h:outputLabel value="CONFIRMAR EMAIL:*"/>  
     <p:inputText id="email2" value="#{UserBean.email2}"  
          readonly="#{UserBean.campoEmail}" />  [/code]

E no método VerificarEmail2, é onde você vai setar a variável campoEmail TRUE ou FALSE

nao da mano, ali tenho q fazer isso

update="mensagens:mensagem"

por isso esta assim

<h:inputText id="email" value="#{UserBean.email}" >
                                    <p:ajax event="blur" listener="#{UserBean.VerificarEmail2}"
                                            process="email" update="mensagens:mensagem"/>
                                </h:inputText>
                                
                                <h:outputLabel value="CONFIRMAR EMAIL:*"/>
                                <h:inputText id="email2" value="#{UserBean.email2}"
                                             readonly="#{UserBean.campoEmail}" rendered="true">
                                    <p:ajax update="email2" />
                                </h:inputText>

cara eu tenho um caixa de mensagem por isso num ta o update la vou postar a parte toda do codigo referente ai isso acho q fica mais facil para vc enteder

<h:form id="mensagens" styleClass="erros">
                    <p:messages id="mensagem" />
</h:form>

 <h:outputLabel value="EMAIL:*"/>

                                <h:inputText id="email" value="#{UserBean.email}" >
                                    <p:ajax event="blur" listener="#{UserBean.VerificarEmail2}"
                                            process="email" update="mensagens:mensagem" />
                                </h:inputText>
                                
                                <h:outputLabel value="CONFIRMAR EMAIL:*"/>
                                <h:inputText id="email2" value="#{UserBean.email2}"
                                             readonly="#{UserBean.campoEmail}" >
                                    <p:ajax event="keyup" update="email2" />
                                </h:inputText>
 public void VerificarEmail2(){
         UsuarioDaoPG user = new UsuarioDaoPG();
         UserBean bean = new UserBean();
         campoEmail= false;
         String[] aux = email.split("@");
         String aux2 = aux[1];
         

         if (!(email.split("@").length == 2) && !(aux2.split(".").length >= 1)){
             FacesContext.getCurrentInstance().addMessage(null,
                     new FacesMessage(FacesMessage.SEVERITY_INFO,
                     "Email Invalido", null));
             campoEmail = true;
         }
          if(user.selectUser(email) == true)
          {
               campoEmail = true;
               setCampoEmail(true);
               FacesContext.getCurrentInstance().addMessage(null,
                     new FacesMessage(FacesMessage.SEVERITY_INFO,
                     "Usuario já existe", null));
          }
     }