Boa noite, estou com um problema no meu autocomplete…
Quando eu tento utilizar o var ele não me atribui o nome…
<p:autoComplete value="#{internacaoBean.paciente}" id="autopaciente" completeMethod="#{internacaoBean.completaPaciente}"
converter="pacienteConverter" var="p" itemLabel="#{p}" itemValue="#{p}">
No item Label quero utilizar o p.getNome, mas ele não me abre nada e se eu forçar ele fala que não existe o método… Vai minhas classes

InternacaoBean
package healthcare.control;
import healthcare.modelo.Dispositivo;
import healthcare.modelo.Enfermeiro;
import healthcare.modelo.Internacao;
import healthcare.modelo.Medico;
import healthcare.modelo.Paciente;
import healthcare.util.DAOFactory;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;
/**
*
* @author Ulisses
*/
@ManagedBean
@ViewScoped
public class InternacaoBean {
private Internacao internacao = new Internacao();
private Dispositivo dispositivo = new Dispositivo();
private List<Paciente> listaPaciente;
private List<Medico> listaMedico;
private List<Enfermeiro> listaEnfermeiro;
private List<Internacao> listaInternacao;
private List<Internacao> listaInternacaoFiltro;
private SelectItem[] opcaoStatus;
private Paciente paciente;
public InternacaoBean() {
listaInternacao = listaInternacaoFiltro = listaInternacao();
}
public Internacao getInternacao() {
return internacao;
}
public Paciente getPaciente() {
return paciente;
}
public void setPaciente(Paciente paciente) {
this.paciente = paciente;
}
public void setInternacao(Internacao internacao) {
this.internacao = internacao;
}
public Dispositivo getDispositivo() {
return dispositivo;
}
public void setDispositivo(Dispositivo dispositivo) {
this.dispositivo = dispositivo;
}
public List<Internacao> getListaInternacao() {
return listaInternacao;
}
public void setListaInternacao(List<Internacao> listaInternacao) {
this.listaInternacao = listaInternacao;
}
public List<Internacao> getListaInternacaoFiltro() {
return listaInternacaoFiltro;
}
public void setListaInternacaoFiltro(List<Internacao> listaInternacaoFiltro) {
this.listaInternacaoFiltro = listaInternacaoFiltro;
}
public List<Paciente> getListaPaciente() {
return listaPaciente;
}
public void setListaPaciente(List<Paciente> listaPaciente) {
this.listaPaciente = listaPaciente;
}
public List<Medico> getListaMedico() {
return listaMedico;
}
public void setListaMedico(List<Medico> listaMedico) {
this.listaMedico = listaMedico;
}
public List<Enfermeiro> getListaEnfermeiro() {
return listaEnfermeiro;
}
public void setListaEnfermeiro(List<Enfermeiro> listaEnfermeiro) {
this.listaEnfermeiro = listaEnfermeiro;
}
public SelectItem[] getOpcaoStatus() {
return opcaoStatus;
}
public void setOpcaoStatus(SelectItem[] opcaoStatus) {
this.opcaoStatus = opcaoStatus;
}
private List<Internacao> listaInternacao(){
return DAOFactory.createInternacaoDAO().listar();
}
public void novaInternacao(){
internacao = new Internacao();
listaEnfermeiro = DAOFactory.createEnfermeiroDAO().listar();
listaMedico = DAOFactory.createMedicoDAO().listar();
listaPaciente = DAOFactory.createPacienteDAO().listar();
for(int i=0;i<listaPaciente.size();i++){
Paciente a = listaPaciente.get(i);
System.out.println("Paciente:"+a.getNome());
}
}
public List<Paciente> completaPaciente(String query) {
List<Paciente> sugestao = new ArrayList<Paciente>();
Paciente pac;
for(int i=0;i<listaPaciente.size();i++){
pac = listaPaciente.get(i);
if(pac.getNome().startsWith(query))
sugestao.add(pac);
}
System.out.println("Passei Aqui!");
for(int i=0;i<sugestao.size();i++){
Paciente a = sugestao.get(i);
System.out.println("Paciente:"+a.getNome());
}
return sugestao;
}
}
Cadastro Internacao
[code]<?xml version='1.0' encoding='UTF-8' ?>
<body>
<ui:composition template="./Modelo.xhtml">
<ui:define name="content">
<h:form id="frm_internacao_lista">
<p:dataTable id="dtinternacao" var="inter" value="#{internacaoBean.listaInternacao}" rowKey="#{inter.id}"
selection="#{internacaoBean.internacao}" selectionMode="single" emptyMessage="Nenhuma Internação Ativa"
filteredValue="#{internacaoBean.listaInternacaoFiltro}">
<f:facet name="header">
<p:commandButton action="#{internacaoBean.novaInternacao}" update=":frm_novainternacao_menu:dialognovainternacao" oncomplete="menuNovaInternacao.show()" value="Nova Internação" icon="ui-icon-document"/>
</f:facet>
<p:column headerText="Data Entrada" filterMatchMode="contains" filterBy="#{inter.dtEntrada}">
<p:outputLabel value="#{inter.dtEntrada}"/>
</p:column>
<p:column headerText="Data Saída" filterMatchMode="contains" filterBy="#{inter.dtSaida}">
<p:outputLabel value="#{inter.dtSaida}"/>
</p:column>
<p:column headerText="Paciente" filterMatchMode="contains" filterBy="#{inter.PACIENTEid.nome}">
<p:outputLabel value="#{inter.PACIENTEid.nome}"/>
</p:column>
<p:column headerText="Médico" filterMatchMode="contains" filterBy="#{inter.MEDICOid.nome}">
<p:outputLabel value="#{inter.MEDICOid.nome}"/>
</p:column>
<p:column headerText="Status" filterMatchMode="contains" filterBy="#{inter.status}">
<p:outputLabel value="#{inter.status}"/>
</p:column>
</p:dataTable>
</h:form>
<h:form id="frm_novainternacao_menu">
<p:dialog id="dialognovainternacao" header="Nova Internação" widgetVar="menuNovaInternacao" modal="true">
<h:inputHidden value="#{internacaoBean.internacao.id}"/>
<h:panelGrid columns="2"/>
<p:outputLabel value="Paciente:"/>
<p:autoComplete value="#{internacaoBean.paciente}" id="autopaciente" completeMethod="#{internacaoBean.completaPaciente}"
converter="pacienteConverter" var="p" itemLabel="#{p}" itemValue="#{p}">
<p:column>
Nome: #{p}
</p:column>
</p:autoComplete>
<p:outputLabel value="Médico:"/>
<p:outputLabel value="Enfermeiro:"/>
</p:dialog>
</h:form>
</ui:define>
</ui:composition>
</body>
[/code]
PacienteConverter
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package healthcare.control;
import healthcare.dao.PacienteDAO;
import healthcare.modelo.Paciente;
import healthcare.util.DAOFactory;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
/**
*
-
@author Ulisses
*/
@FacesConverter(value = “pacienteConverter”)
public class PacienteConverter implements Converter{@Override
public Object getAsObject(FacesContext context, UIComponent component, String value){
if(value != null && value.trim().length()>0){
Integer id = Integer.valueOf(value);
try{
PacienteDAO dao = DAOFactory.createPacienteDAO();
return dao.carregar(id);
} catch(Exception e) {
throw new ConverterException(“Não foi possivel encontrar o Zigbee de código:” + value + “.” + e.getMessage());
}
}
return null;
}@Override
public String getAsString(FacesContext context, UIComponent component, Object value){
if (value != null){
Paciente paciente = (Paciente) value;
return paciente.getId().toString();
}
return “”;
}
}
[/code]