Aplicar Filtros a Registros usando DataClassG y JSFGenerator
Filtrar los registros de departamentos en base a la organizaciĆ³n del usuario que se logueo en el sistema.
Tablas
Crear un ManagedBean llamado DatosSession y colocar el atributo por el cual deseamos filtrar los registros en base al usuario que se logea en la aplicaciĆ³n
Clase DatosSesion.java
@Named(value = "datosSesion")
@SessionScoped
public class DatosSesion implements Serializable {
Integer idorganizacion;
public DatosSesion() {
}
public Integer getIdorganizacion() {
return idorganizacion;
}
public void setIdorganizacion(Integer idorganizacion) {
this.idorganizacion = idorganizacion;
}
}
Clase LoginBean.java
Definimos el objeto DatosSesion y en el mĆ©todo verificarLogin() realizamos la asignaciĆ³n
DatosSesion datosSesion;
public LoginBean() {
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
datosSesion = (DatosSesion) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "datosSesion");
}
public String verificarLogin(){
datosSesion.setIdorganizacion(usuarios.getIdorganizacion());
En el ManagedBeans DepartamentoServices.java
Creamos un objeto de DatosSesion, colocamos el valor en la propiedad del managedbean departamento en el mƩtodo insert(), en el mƩtodo loadItems() comentamos el selectAll() y lo reemplazamos por un query con el filtro, y en el mƩtodo selectAll() comentamos if(departamentoController.selectAll()){ y lo reemplazamos por un query con el filtro.
DatosSesion datosSesion;
public DepartamentoServices(){
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
departamentolist = new ArrayList<>();
datosSesion = (DatosSesion) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "datosSesion");
}
@Override
public Boolean insert() {
try{
departamento.setIdorganizacion(datosSesion.getIdorganizacion());
public List<SelectItem> loadItems() {
try {
// selectAll();
query("idorganizacion='"+datosSesion.getIdorganizacion()+"'");
@Override
public Boolean selectAll() {
// if(departamentoController.selectAll()){
if (departamentoController.query("idorganizacion='" + datosSesion.getIdorganizacion() + "'")) {
departamentolist = departamentoController.getDepartamentolist();
}
En ManagedBeans DepartamentosData
Creamos un objeto de DatosSesion, colocamos el valor en la propiedad del managedbean departamento en el mƩtodo init(), insert(), en el mƩtodo loadItems() comentamos el selectAll() y lo reemplazamos por un query con el filtro, y en el mƩtodo selectAll() comentamos if(departamentoController.selectAll()){ y lo reemplazamos por un query con el filtro.
DatosSesion datosSesion;
public DepartamentoServices(){
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
departamentolist = new ArrayList<>();
datosSesion = (DatosSesion) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "datosSesion");
}
@PostConstruct
public void init() {
// ---udpate with your filter;
// selectAll();
query("idorganizacion='"+datosSesion.getIdorganizacion()+"'");
}
@Override
public Boolean insert() {
try{
departamento.setIdorganizacion(datosSesion.getIdorganizacion());
public List<SelectItem> loadItems() {
try {
// selectAll();
query("idorganizacion='"+datosSesion.getIdorganizacion()+"'");
@Override
public Boolean selectAll() {
try {
if (departamentolist != null) {
departamentolist.removeAll(departamentolist);
}
// if (departamentoController.selectAll()) {
if (departamentoController.query("idorganizacion='"+datosSesion.getIdorganizacion()+"'")) {
departamentolist = departamentoController.getDepartamentolist();
}
Select de todos los registros
Los componentes <p:dataTable se utilizan con la clase DepartamentosData
Imagen de los departamentos pertenecientes a la Organizacion A
Imagen de los departamentos pertenecientes a la Organizacion A
Formulario de insertar registros no se muestra el atributo idorganizacion ya que este se inserta directamente en base al usuario logueado.
Comments