Olá, quero exibir uma mensagem se o usuário deixar de selecionar um autor na lista, agradeço se puderem identificar o que ocorre. Alterei o combobox pra exibir a string "Selecione..." como primeira opção no combobox e se o usuário não selecionar, quero que exiba a mensagem "Selecione um autor."
OBS: As demais mensagens de validação do formulário estão funcionando normalmente
Está entrando no if(autor == null){ Não está dando erro na implementação, mas não exibe a mensagem. seguem os códigos.
livro.xhtml
<!-- restante do código omitido -->
<h:body>
<h1>Novo Livro</h1>
<h:form>
<h:messages id="messages"/>
<!-- restante do código omitido -->
<h:selectOneMenu value="#{livroBean.autorId}" id="autor">
<f:selectItem itemLabel="Selecione..." noSelectionOption="true"/>
<f:selectItems value="#{livroBean.autores}" var="autor" itemLabel="#{autor.nome}" itemValue="#{autor.id}"/>
</h:selectOneMenu>
<!-- restante do código omitido -->
LivroBean
public void gravarAutor(){
Autor autor = new DAO<Autor>(Autor.class).buscaPorId(this.autorId);
if(autor == null){
FacesContext.getCurrentInstance().addMessage("autor", new FacesMessage("Selecione um Autor"));
}else{
this.livro.adicionaAutor(autor);
System.out.println("Livro escrito por: " + autor.getNome());
}
}