Erro no Primefaces AutoComplete
20/09/2016
0
Boa Tarde DevMedia! Sou novo na area e me apareceu um erro que eu simplesmente não consigo entender. Agradeço desde já pela força.
Estou trabalhando em um Projeto Maven, com Primefaces. Eu preciso de um Auto complete que me mostre dados já existentes no banco para que assim, ao ser selecionado, preencha os outros campo, da mesma forma que ocorre com o Cep em muitos sites. Porem Travei neste erro.
Console:
AutoComplete xhtml:
AutoCompleteView:
VisitaService:
VisitanteConverter:
Grato
Estou trabalhando em um Projeto Maven, com Primefaces. Eu preciso de um Auto complete que me mostre dados já existentes no banco para que assim, ao ser selecionado, preencha os outros campo, da mesma forma que ocorre com o Cep em muitos sites. Porem Travei neste erro.
Console:
set 20, 2016 1:34:57 PM com.sun.faces.renderkit.RenderKitUtils renderHtmlErrorPage ADVERTÊNCIA: JSF1087: Não foi possível gerar a página de erro de Facelets porque a resposta já foi enviada. set 20, 2016 1:34:57 PM com.sun.faces.renderkit.RenderKitUtils renderHtmlErrorPage GRAVE: javax.faces.FacesException: Não foi possível criar o bean gerenciado autoCompleteView. Os seguintes problemas foram encontrados: - A propriedade service para o bean gerenciado autoCompleteView não existe. javax.faces.FacesException: Não foi possível criar o bean gerenciado autoCompleteView. Os seguintes problemas foram encontrados: - A propriedade service para o bean gerenciado autoCompleteView não existe.
AutoComplete xhtml:
<p:autoComplete id="code2" value="#{autoCompleteView.cpfAuto}" completeMethod="#{autoCompleteView.completeCode}" size="16" var="dv" itemLabel="#{dv.code}" itemValue="#" converter="visitanteConverter" forceSelection="true" requiredMessage="O campo CPF/RG é obrigatorio" validatorMessage="O numero minimo de caracteres permitido é de 5 caracteres"> <f:validateLength maximum="15" minimum="5" /> <f:facet name="itemtip"> <h:panelGrid columns="2" cellpadding="5"> <f:facet name="header"> <h:graphicImage width="50" url="http://localhost:8080/uploads/#{v.code}.png" style="margin-left:50px" /> </f:facet> <h:outputText value="Nome:" /> <h:outputText value="#{dv.nome}" /> <h:outputText value="Empresa:" /> <h:outputText value="#{dv.empresa}" /> </h:panelGrid> </f:facet> </p:autoComplete>
AutoCompleteView:
@ManagedBean public class AutoCompleteView { private Visitante cpfAuto; @ManagedProperty("#") private VisitaService service; public List<Visitante> completeCode(String query) { List<Visitante> allVisitas = service.getVisitas(); List<Visitante> visitasFiltradas = new ArrayList<Visitante>(); for (int i = 0; i < allVisitas.size(); i++) { Visitante skin = allVisitas.get(i); if(skin.getCode().toLowerCase().startsWith(query)) { visitasFiltradas.add(skin); } } return visitasFiltradas; } public void onItemSelect(SelectEvent event) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Item Selected", event.getObject().toString())); } public Visitante getCpfAuto() { return cpfAuto; } public void setCpfAuto(Visitante cpfAuto) { this.cpfAuto = cpfAuto; } }
VisitaService:
@ManagedBean(name="visitaService", eager = true) @ApplicationScoped public class VisitaService { private List<Visitante> visitas; @PostConstruct public void init() { try { visitas = new ArrayList<Visitante>(); VisitanteDAO dao = new VisitanteDAO(); visitas = dao.listar(); } catch (RuntimeException e) { Messages.addGlobalError("Erro ao listar"); e.printStackTrace(); } } public List<Visitante> getVisitas() { return visitas; } }
VisitanteConverter:
@FacesConverter("visitanteConverter") public class VisitanteConverter implements Converter { public Object getAsObject(FacesContext fc, UIComponent uic, String value) { if(value != null && value.trim().length() > 0) { try { VisitaService service = (VisitaService) fc.getExternalContext().getApplicationMap().get("visitaService"); return service.getVisitas().get(Integer.parseInt(value)); } catch(NumberFormatException e) { throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro de conversão", "Visitante não é valido.")); } } else { return null; } } public String getAsString(FacesContext fc, UIComponent uic, Object object) { if(object != null) { return String.valueOf(((Visitante) object).getCodigo()); } else { return null; } } }
Grato
Jonathan
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)