Boa tarde, pessoal.
Já faz algum tempo que estou com o seguinte problema e não consigo resolver.
Tenho o seguinte trecho de código no jsp:
<t:panelGroup>
<t:outputText value="* " styleClass="requiredField" />
<t:outputLabel for="cod_contrato" value="Código do Contrato" styleClass="label" />
</t:panelGroup>
<t:panelGroup colspan="3">
<t:outputText value="* " styleClass="requiredField" />
<t:outputLabel for="titular_contrato" value="Titular do Contrato" styleClass="label" />
</t:panelGroup>
<t:panelGroup>
<h:inputText id="cod_contrato" value="#{ReservaMB.obj.idContrato.idTitBanstur}" binding="#{ReservaMB.uiContrato}"
styleClass="textField" size="10" maxlength="10" required="false" />
<a4j:commandButton image="images/refresh.gif" actionListener="#{ReservaMB.qryContratoByCodigo}" immediate="true" reRender="cod_contrato,titular_contrato,nomeUsuario" />
<rich:message for="cod_contrato" styleClass="msgError" />
</t:panelGroup>
<t:panelGroup colspan="3">
<h:inputText id="titular_contrato" value="#{ReservaMB.obj.idContrato.idCliente.nome}" styleClass="textField" size="50" maxlength="50" readonly="true" />
<h:commandButton image="images/find.gif" action="#{ReservaMB.selectContrato}" immediate="true" />
</t:panelGroup>
<t:panelGroup colspan="4" >
<h:outputText value="* " styleClass="requiredField" />
<h:outputLabel for="nomeUsuario" value="Usuario" styleClass="label" />
</t:panelGroup>
<t:panelGroup colspan="4" >
<h:inputText id="nomeUsuario" value="#{ReservaMB.obj.nomeUsuario}" styleClass="textField" size="80" maxlength="80" required="false"
onkeyup="this.value = this.value.toUpperCase()" />
<h:message for="nomeUsuario" styleClass="msgError"/>
</t:panelGroup>
e no MBean :
public void qryContratoByCodigo(ActionEvent evt) {
try {
Integer codContrato = Integer.valueOf((String)uiContrato.getSubmittedValue());
this.getObj().setIdContrato(ContratoDAO.findByIdTitBanstur(null, codContrato));
this.getObj().setNomeUsuario(this.getObj().getIdContrato().getIdCliente().getNome());
JSFHelper.addMessage("cod_contrato", "Hotel encontrado !");
} catch (SystemException e) {
String msgError = "Erro ocorrido ao consultar Contrato por código.";
JSFHelper.setSessionAttribute("session.SystemException", new SystemException(msgError, e));
JSFHelper.addMessage("cod_contrato", "Hotel nao encontrado !");
}
}
O problema é que o ajax somente esta redenizando corretamente o inputText titular_contrato.
E o rich:message for=“cod_contrato” e o h:inputText id=“nomeUsuario” não estão sendo atualizados, embora na depuração constatei que a propriedade nomeUsuario foi atualizada corretamente, mas na visão o ajax não esta atualizando.
Não estou conseguindo descobrir o que pode ser.
OBS.: se no h:inputText id=“nomeUsuario” acrecentar a propriedade readonly=“true” dai o ajax funciona.