esta sendo apresentada a seguinte mensagem de erro "javax.servlet.ServletException: /sorteio.xhtml @23,48 value="#{par.sorteio.nome}": The class 'java.lang.String' does not have the property 'sorteio'."
porem comparei as minhas alterações com a resposta de exercício e esta bem similar... segue abaixo
SorteioBean:
@Named
@RequestScoped
public class SorteioBean {
private Sorteio sorteio = new Sorteio();
@Inject
private ParticipanteDao participanteDao;
@Inject
private SorteioDao sorteioDao;
public Sorteio getSorteio() {
return sorteio;
}
public void sortear() {
List<Participante> participantes = participanteDao.getParticipantes();
try {
Sorteador sorteador = new Sorteador(sorteio, participantes);
sorteador.sortear();
sorteioDao.inserir(sorteio);
} catch (SorteioException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public List<Par> getPares() {
return sorteioDao.getPares();
}
}
SorteioDao:
@Stateless
public class SorteioDao {
@PersistenceContext
private EntityManager em;
public void inserir(Sorteio sorteio) {
em.persist(sorteio);
}
public List<Par> getPares() {
return em.createNativeQuery("select * from Par", Par.class).getResultList();
}
}
sorteio.xhtml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Sorteio</title>
</h:head>
<h:body>
<h:form>
<p:panelGrid columns="2">
<p:outputLabel value="Nome: " />
<p:inputText value="#{sorteioBean.sorteio.nome}"/>
<p:commandButton action="#{sorteioBean.sortear}" value="Cadastrar" ajax="false"/>
</p:panelGrid>
</h:form>
<br />
<p:dataTable value="sorteioBean.pares" var="par">
<p:column>
<f:facet name="header">Sorteio:</f:facet>
<h:outputText value="#{par.sorteio.nome}" />
</p:column>
<p:column>
<f:facet name="header">Amigo:</f:facet>
<h:outputText value="#{par.amigo.nome}" />
</p:column>
<p:column>
<f:facet name="header">Amigo Oculto:</f:facet>
<h:outputText value="#{par.amigoOculto.nome}" />
</p:column>
</p:dataTable>
</h:body>
</html>