Tenho uma tela onde posso pesquisar e incluir dados. Ou seja, tenho 3 campos e um grid.
Se o usuário preencher os campos e clicar em salvar, os dados são persistidos, se clicar em pesquisar, é feito uma consulta no banco de dados e os mesmos são exibidos no grid.
Anteriormente, validava os campos num método que era chamado dentro do método salvar. Explicando: era chamado o método salvar após o clique do botão e o método salvar chamada o método validar. Agora, estou tentando trocar para o Validator do Jsf, usando o “Validator Method”.
Algo do tipo:
<p:inputText id="inputNome" value="#{projetoBean.projeto.nome}" size="50" validator="#{projetoController2.isNomeValido}" />
public void isNomeValido(FacesContext context, UIComponent component, Object value) throws ValidatorException {
final String nome;
FacesMessage facesMessage;
nome = (String) value;
facesMessage = new FacesMessage();
if(nome == null || nome.trim().length() == 0) {
facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Campo 'Nome' é obrigatório", "Campo 'Nome' é obrigatório");
throw new ValidatorException(facesMessage);
}
}
Até ai beleza, porém, possui dois botões, incluir e pesquisar, os dois são commandButton, ou seja, do tipo submit, mas com ajax. A minha dúvida é:
- Existe uma forma correta de dizer para o método “Valide somente para o botão tal”?
- Ou do jeito que estou fazendo não é o mais “correto”?