Bom, tenho a seguinte classe ManagedBean abaixo
package br.com.odontonew.mb;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import br.com.odontonew.bean.AbstractBean;
import br.com.odontonew.bean.Dentista;
import br.com.odontonew.bo.BasicBO;
@ManagedBean(name="dentistaMB")
@ViewScoped
public class DentistaMBImpl extends BasicMBImpl {
@ManagedProperty("#{basicBO}")
private BasicBO basicBO;
private Dentista dentista;
private List<Dentista> dentistas;
private boolean editMode;
public Dentista getBean(){
if (dentista == null)
dentista = new Dentista();
return dentista;
}
public void salvar(){
if (dentista.getId() == null){
dentista = (Dentista) basicBO.save(dentista);
addInfoMessage("Dentista salvo com sucesso");
}else{
basicBO.update(dentista);
addInfoMessage("Dentista atualizado com sucesso");
}
}
public void deletar(){
basicBO.delete(dentista);
addInfoMessage("Dentista deletado com sucesso");
}
public void criar(){
this.dentista = new Dentista();
this.editMode = true;
}
public void atualizar(){
this.editMode = true;
}
public void cancelar(){
this.editMode = false;
}
public List<Dentista> getDentistas(){
if (dentistas == null)
dentistas = (List<Dentista>) basicBO.findAll(Dentista.class);
System.out.println(dentistas.get(0).getCro());
return dentistas;
}
public BasicBO getBasicBO() {
return basicBO;
}
public void setBasicBO(BasicBO basicBO) {
this.basicBO = basicBO;
}
public Dentista getDentista() {
return dentista;
}
public void setDentista(Dentista dentista) {
this.dentista = dentista;
}
public boolean isEditMode() {
return editMode;
}
public void setEditMode(boolean editMode) {
this.editMode = editMode;
}
}
Ele carrega o Dentista e da um “System.out.println” normalmente mostrando que foi carregado o objeto. Porém ao tentar usá-lo no View para mostrar uma lista de dentistas ele não funciona, da o seguinte erro: /tabelas/dentistas.xhtml @17,82 rowKey="#{dentista.cro}": Property ‘cro’ not found on type java.lang.String
Veja minha pagina dentistas.xhml
<!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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<ui:composition template="/templates/template.xhtml">
<ui:define name="content">
<h:form id="formDentistas">
<p:dataTable var="dentista" value="#{dentistaMB.dentistas}" rowKey="#{dentista.cro}" paginator="true" rows="10"
selection="" selectionMode="single" filteredValue="" id="dataTableDentistas">
<f:facet name="header">Lista de Dentistas</f:facet>
<p:column headerText="Nome" sortBy="nome" filterBy="nome" id="nome">
#{dentista.cro}
</p:column>
<p:column headerText="CRO" sortBy="cro" filterBy="cro" id="cro">
#{dentista.cro}
</p:column>
</p:dataTable>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>