Olá pessoal do forum, bom dia.
Estou tendo um problema ao exibir o modalPanel apenas quando a transação for executada.
Tenho um controller com o método icluirCurso do tipo String conforme abaixo:
public String incluirCurso() {
FacesContext context = FacesContext.getCurrentInstance();
ManterCursosForm formCurso = (ManterCursosForm) context.getApplication().getExpressionFactory().createValueExpression(context.getELContext(), "#{manterCursosForm}", ManterCursosForm.class).getValue(context.getELContext());
try {
ManterCursosValidator validatorCurso = new ManterCursosValidator();
if (validatorCurso.validaCurso()) {
Curso curso = new Curso();
curso.setCodigo(formCurso.getCodigo());
curso.setDescricao(formCurso.getDescricao());
Professor controladorProfessor = new ManterProfessoresController().verificarProfessor(formCurso.getProfessorSelecionado());
curso.setProfessor(controladorProfessor);
curso.setCargaHoraria(formCurso.getCargaHoraria());
curso.setQtdePeriodos(formCurso.getQtdePeriodos());
curso.setTipoCurso(formCurso.getTipoCursoSelecionado());
CursoDAO cursoDAO = new CursoDAO();
cursoDAO.salvar(curso);
Mensagem.setExibeMensagemComponente("formPrincipal:iphMensagem", "msg.curso.inclusao.sucesso");
carregarListaCursos();
}
else
return null;
} catch (Exception e) {
Mensagem.setExibeMensagemComponente("formPrincipal:iphMensagem", "msg.curso.inclusao.erro");
Logger.getLogger(CursoDAO.class.getName() + e);
}
return null;
}
Porém quando não é feito a validação dos campos, ou seja, validatorCurso.validaCurso() retorna falso, o modalPanel é exibido vazio. Gostaria que o mesmo fosse exibido apenas quando a validação e a transação tiver sido realizada. Estou utilizando no jsf o evento onComplete=“Richfaces.showModalPanel(‘mpAviso’)” do commandButton de inclusão, porém este é o problema, mesmo que a validação não seja efetuada, pelo fato de ele ter completado o método, ele exibe o modal.
Como exibir o modal apenas quando a validação e a transação estiver sido realizada? Alguém tem uma idéia?
Agradeço desde já pela atenção,
Atenciosamente,
Lessandro