Tenho um formulário que é salvo via ajax com o RichFaces, gostaria de saber como eu valido no método action antes de salvar.
Por exemplo, nesse form somente se as senhas forem exatamente iguais pode salvar:
[code]<h:form id=“formEditUsuario”>
<h:panelGrid id=“infoUsuario” columns=“2”>
<h:outputLabel for=“nomeInput” value=“Nome Completo”/>
<h:inputText
id=“nomeInput”
size=“50”
value="#{usuarioDTSBean.usuarioSelecionado.nomeReal}"
required=“true”
validatorMessage=“Nome entre 5 e 50 caracteres”>
<f:validateLength minimum=“5” maximum=“50”/>
<rich:ajaxValidator event=“onblur”/>
</h:inputText>
<h:outputLabel for="senhaInput" value="Senha:"/>
<h:inputSecret redisplay="true" id="senhaInput" required="true" validatorMessage="Senha entre 5 e 20 caracteres"
value="#{usuarioDTSBean.usuarioSelecionado.senha}" style="width:150px">
<f:validateLength minimum="5" maximum="20"/>
</h:inputSecret>
<h:outputLabel for="senhaInput2" value="Confirme a Senha:"/>
<h:inputSecret redisplay="true" id="senhaInput2" required="true" validatorMessage="Senha entre 5 e 20 caracteres"
value="#{usuarioDTSBean.senhaConfirmar}" style="width:150px">
<f:validateLength minimum="5" maximum="20"/>
</h:inputSecret>
<h:outputLabel for="emailInput" value="Email:"/>
<h:inputText id="emailInput" size="50" value="#{usuarioDTSBean.usuarioSelecionado.email}"/>
<h:outputLabel for="niveis" value="Nível:"/>
<h:selectOneMenu id="niveis" value="#{usuarioDTSBean.usuarioSelecionado.nivel}" style="width:150px" >
<f:selectItems id="usuario" value="#{mainBean.niveisUsuarios}" />
</h:selectOneMenu>
<h:outputText value=""/>
<h:panelGrid columns="2">
<a4j:commandLink title="Fechar esta janela" ajaxSingle="true" onclick="#{rich:component('editarDadosUsuario')}.hide();return false" value="Fechar" />
<a4j:commandLink title="Salvar esse cadastro" actionListener="#{usuarioDTSBean.salvar}" oncomplete="#{rich:component('editarDadosUsuario')}.hide()" reRender="nomeReal">Salvar</a4j:commandLink>
</h:panelGrid>
</h:panelGrid>
</h:form>[/code]
Método salvar no bean:
public void salvar(ActionEvent event) {
if (usuarioSelecionado.getSenha().toLowerCase().equals(this.senhaConfirmar.toLowerCase())) {
try {
usuarioDao.save(usuarioSelecionado);
} catch (Throwable ex) {
System.out.println("Erro ao salvar usuario: "+ex.getMessage());
Logger.getLogger(UsuarioDataTableScrollerBean.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
// Retornar alguma coisa para a chamada Ajax
}
}