<p:autocomplete> con Integer y String
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.avbravo.transporteejb.services;
import com.avbravo.avbravoutils.JsfUtil;
import com.avbravo.transporteejb.entity.Facultad;
import com.avbravo.transporteejb.repository.FacultadRepository;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import org.bson.Document;
/**
*
* @authoravbravo
*/
@Stateless
public class FacultadServices {
@Inject
FacultadRepository facultadRepository;
List<Facultad> facultadList = new ArrayList<>();
public List<Facultad> complete(String query) {
List<Facultad> suggestions = new ArrayList<>();
try {
query = query.trim();
if (query.length() < 1) {
return suggestions;
}
String field = (String) UIComponent.getCurrentComponent(FacesContext.getCurrentInstance()).getAttributes().get("field");
if (field.equals("idfacultad")) {
List<Facultad> facultadList = facultadRepository.findAll();
if (!facultadList.isEmpty()) {
for (Facultad f : facultadList) {
if (String.valueOf(f.getIdfacultad()).toLowerCase().startsWith(query.toLowerCase())) {
suggestions.add(f);
}
}
}
} else {
suggestions = facultadRepository.findRegex(field, query, true, new Document(field, 1));
}
} catch (Exception e) {
JsfUtil.errorMessage("complete() " + e.getLocalizedMessage());
}
return suggestions;
}
public List<Facultad> getFacultadList() {
try {
facultadList = facultadRepository.findAll(new Document("facultad", 1));
} catch (Exception e) {
JsfUtil.errorMessage("getFacultadList() " + e.getLocalizedMessage());
}
return facultadList;
}
public void setFacultadList(List<Facultad> facultadList) {
this.facultadList = facultadList;
}
}list.xhtml
Componente
CONTROLLER
Método init()
Se debe convertir a Integer el id
Last updated
Was this helpful?