Quando o campo (id=“nome”) perde o foco executa o método (listener="#{loginMb.criticaCamposTela}") porém o valor do atributo do manegbeen (loginMb.usuario.nome) não é atualizado com os valores digitados. Se coloco a informação no nome Marco, quando executa o metodo pelo evento onblur este valor está nulo.
Se passo a propriedade do p:ajax, imediate=false, o método nem é executado.
O valor do maneged been ((loginMb.usuario.nome) não deveria estar atualizado com os dados informados? Como fazer então esta validação via ajax?
Obrigado.
Page:
[code]<h:outputText value="Nome:" />
<p:inputText id="nome" value="#{loginMb.usuario.nome}"
required="true" size="20" requiredMessage="Informação do nome é obrigatório.">
<p:ajax event="blur" update="idMsgNome, nome" partialSubmit="treu" process="@this"
immediate="true" listener="#{loginMb.criticaCamposTela}"></p:ajax>
</p:inputText>
<h:outputText id="idMsgNome" value="#{loginMb.criticaNome.value}" />[/code]
ManagedBean LoginMb:
[code] public void criticaCamposTela(AjaxBehaviorEvent actionEvent) {
String idComponenteTela = actionEvent.getComponent().getId();
if (idComponenteTela.equals("nome")) {
if ((this.usuario.getNome() == null)
|| ((this.usuario.getNome() != null) && (this.usuario
.getNome().trim().length() == 0))) {
this.criticaNome.setValue(new String(
"O nome é um campo obrigatório."));
} else {
this.criticaNome.setValue(new String(""));
}}
[/code]
web.xml:
[code]<context-param>
<param-name>primefaces.SUBMIT</param-name>
<param-value>partial</param-value>
</context-param>[/code]