Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dados do autor não aparece

O view action não chama o método através do parâmetro. Eu estou acessando pela porta 8082 -> localhost:8082/livraria/livro.xhtml?livroId=1. Link do git: https://github.com/ErivanJunior275/JSF

Se alguém puder me ajudar, agradeço.

2 respostas

Olá, Erivan.

O erro está no seu livro.xhtml. Você está fazendo binding em AutorBean para pegar os dados do autor:

<fieldset>
                    <legend>Dados do Autor</legend>
                    <h:outputLabel value="Selecione Autor: " for="autor" />
                    <h:selectOneMenu value="#{autorBean.autorId}" id="autor">
                        <f:selectItems value="#{autorBean.autores}" var="autor"
                            itemLabel="#{autor.nome}" itemValue="#{autor.id}" />
                    </h:selectOneMenu>

O correto é fazer o binding na lista de autores do próprio LivroBean:

<f:selectItems value="#{livroBean.autores}" var="autor"
                            itemLabel="#{autor.nome}" itemValue="#{autor.id}" />
                    </p:selectOneMenu>

Uma dica que posso te dar é evitar usar mais de um bean em uma tela .xhtml. Não trabalho com JSF há muito tempo, mas o que vejo no dia a dia é, normalmente, um bean (controller) para cada xhtml.

solução!

Olá Patrick,

Obrigado pela dica. Mesmo fazendo isso não havia funcionado então eu removi e adicionei o jar do javax.faces de novo e adicionei o jar do cdi e funcionou.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software