jmoordbtaller
  • Introducción
  • Requisitos
  • Dependencias
  • Repositorios de proyectos
  • Arquitectura
  • Taller 0. Instalar Java
    • Configurar maven
  • Taller 1 MongoDB
  • Taller 2 CRUD MongoDB
    • Insertar documentos
    • Consulta de documentos
    • Documento embebido
    • Eliminar Documentos
    • Actualizar documentos
    • Agregaciones
    • Crear un indice
  • Taller 3 EJB
    • Crear el proyecto ejb
    • Dependencias
    • Entity
    • Repository
  • Taller 4 Java EE 8
    • dependencias
    • Controller
    • new.xhtml
    • index.hxmtl
    • Ampliar el método save()
    • ejecutar proyecto
    • datatable
    • CommandLink
  • Taller 5- Verificar si existe al guardar
  • Taller 6-Bases datos en tiempo de ejecución e Historial de revisión
  • Taller 7. Aplicar temas
  • Taller 8. Eliminar
  • Taller 9- Editar
  • Taller 10. Historial de revisiones
  • Taller 11.Conocer la llave primaria y el valor en tiempo de ejecucion
  • Taller 12. UserInfo
    • Controller
  • Taller 13. Converter/DataModel/Services
    • Services
    • Converter
    • DataModel
  • Taller 14.Autocomplete
    • Componente autocompletepersona
    • Agregar el componente al list.xhtml
  • Taller 15. Paginacion
    • Pais en Proyecto ejb
    • Pais en Proyecto Web
      • Formularios list.xhmtl, new.xhtml, view.xhtml
      • <e:autocompletepais/>
      • <e:paginator>
    • PaisController.java
      • Metodos
        • init()
        • save()
        • delete()
        • edit()
        • handleAutocompleteOfListXhtml()
        • showAll()
        • move(Integer page)
        • searchBy()
        • prepare
        • desplazarse en las paginas
          • printAll()
          • clear()
        • Codigo Completo
        • index.xhtml
  • Parte II- Avanzado
    • Taller 16. crudejb
      • Agregar dependencias
      • Entity
        • Rol.java
        • Usuario.java
      • Repository
      • Services
      • Datamodel
      • Converter
    • Mongodb
      • Insertar documentos en la colección MongoDB
    • Capitulo 17. Arquetipos
      • Crear el proyecto en base al arquetipo
    • Taller 18. Crear proyecto Web
      • Dependencias
      • web.xml
      • Java EE 8 Security
        • ApplicationConfig.java
        • CustomInMemoryIdentityStore.java
      • properties
      • template
        • footer.xhtml
        • template.xhtml
        • top.xhtml
      • resources
      • index.xhtml
      • login
        • login.xhtml
        • LoginController.java
        • Codigo completo
      • Controller
        • Validar duplicados en un autocomplete multiple
        • RolController.java
        • UsuarioController.java
      • <jmoordbjsf:autocomplete>
      • <jmoordbjsf:search>
      • <jmoordbjsf:paginator>
      • <jmoordbjsf:yesno>
      • <jmoordbjsf:toolbarsave>
      • <jmoordbjsf:toolbarview>
      • pages
        • Rol
          • new.xhtml
          • view.xhtml
        • Usuario
          • new.xhtml
          • view.xhtml
    • Ejecutar el proyecto
  • Parte III-Crear una aplicacion web en base al arquetipo
    • Crear el proyecto
    • Editar el proyecto
    • Editar LoginController
    • Editar los paquetes y clases
    • Indicar la conexion a base de datos
    • Ejecutar el proyecto
  • Parte IV. Reportes con jmoordbreport
    • SubReporte Referenciado de Usuario
  • Parte V. Backup/Restore con jmoordbbackup
  • Parte VII Email
Powered by GitBook
On this page

Was this helpful?

  1. Parte II- Avanzado
  2. Taller 18. Crear proyecto Web

Controller

PreviousCodigo completoNextValidar duplicados en un autocomplete multiple

Last updated 5 years ago

Was this helpful?

Crearemos los controller para manejar los entitys: Rol y Usuario

Creamos el paquete controller

Crearemos dos Controller

No es necesario crear los métodos para guardar, eliminar, actualizar estos estan definidos e integrados entre jmoordb + jmoordbjsf.

Definir los atributos

 private static final long serialVersionUID = 1L;

    private Boolean writable = false;
    //DataModel
    private RolDataModel rolDataModel;

    Integer page = 1;
    Integer rowPage = 25;
    List<Integer> pages = new ArrayList<>();

    //Entity
    Rol rol = new Rol();
    Rol rolSelected;
    Rol rolSearch = new Rol();

    //List
    List<Rol> rolList = new ArrayList<>();

    //Repository
    @Inject
    RolRepository rolRepository;
    //Services
     @Inject
    AutoincrementableServices autoincrementableServices;
    @Inject
    ErrorInfoServices errorServices;   
    @Inject
    RolServices rolServices;
    @Inject
    JmoordbResourcesFiles rf;
    @Inject
    Printer printer;

Definir el método getPages()

 public List<Integer> getPages() {

        return rolRepository.listOfPage(rowPage);
    }

Si necesita hacer operaciones antes o después de guardar puede usar

 
     public Boolean beforeStart() {
        return true;
    } 
    public Boolean afterStart(Boolean started) {
        return started;
    } 
 
 public Boolean beforeSave() {
        try {
          //micodigo
            return true;
        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
        }
        return false;
    }

    public Boolean afterSave(Boolean saved) {
        try {
          //micodigo
          if(saved){
          //Se guardo
          }else{
          // No se guardo
          }
   
        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
        }
        return saved;
    }
    public Boolean beforeEdit() {
        try {
         //micodigo
            return true;
        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
        }
        return false;
    }

 public Boolean afterEdit(Boolean edited) {
        return true;

    }

    public Boolean beforeDelete() {
        try {
        //mi codigo
          return true;
        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
        }
        return false;
 }

public Boolean afterDelete(Boolean deleted) {
        return true;
    }
 public Boolean beforePrepareGoList() {
        return true;
    }   
    
public Boolean afterPrepareGoList(Boolean golist) {
        return golist;
    }
    
public Boolean beforePrepareGoNew() {
        return true;
    } // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="Boolean afterPrepareGoNew(Boolean gonew)">
 public Boolean afterPrepareGoNew(Boolean gonew) {
        return gonew;
    } // </editor-fold>
    
public Boolean beforePrepareNew() {
        return true;
    }
public Boolean beforeClear() {
        return true;
    }   

En el init solo necesitamos definir la configuración del controller por

El parametro action: Se usa para indicar el modulo con que estemos trabajando por ejemplo

Descripion

action

modulo de usuario

usuario

modulo rol

rol

modulo solicitud docente usa el entity solicitud

solicituddocente

modulo solicitud administrativo usa entity solicitud

solicitudadministrativo

ejemplo

@PostConstruct
    public void init() {
        try {

            /*
            configurar el ambiente del controller
             */
            HashMap parameters = new HashMap();
            Usuario jmoordb_user = (Usuario) JmoordbContext.get("jmoordb_user");
            //    parameters.put("P_EMPRESA", jmoordb_user.getEmpresa().getDescripcion());

            JmoordbControllerEnvironment jmc = new JmoordbControllerEnvironment.Builder()
                    .withController(this)
                    .withRepository(rolRepository)
                    .withEntity(rol)
                    .withService(rolServices)
                    .withNameFieldOfPage("page")
                    .withNameFieldOfRowPage("rowPage")
                    .withTypeKey("primary")
                    .withSearchLowerCase(false)
                    .withPathReportDetail("/resources/reportes/rol/details.jasper")
                    .withPathReportAll("/resources/reportes/rol/all.jasper")
                    .withparameters(parameters)
                    .withResetInSave(true)
                    .withAction("rol")
                    .build();

            start();
            
       
          
        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
        }
    }// </editor-fold>

Método move() que ejecutara la paginacion y nos permite realizar las búsquedas y desplazarnos entre las paginas.

 @Override
    public void move(Integer page) {
        try {
            this.page = page;
            rolDataModel = new RolDataModel(rolList);
            Document doc;

            switch ((String) JmoordbContext.get("searchrol")) {
                case "_init":
                     rolList = rolRepository.findPagination(page, rowPage);
                    break;
                case "_autocomplete":
                   break;
                   
                case "idrol":
                    if (JmoordbContext.get("_fieldsearchrol") != null) {
                        rolSearch.setIdrol(JmoordbContext.get("_fieldsearchrol").toString());
                        doc = new Document("idrol",rolSearch.getIdrol());
                        rolList = rolRepository.findPagination(doc, page, rowPage, new Document("idrol", -1));
                    } else {
                        rolList = rolRepository.findPagination(page, rowPage);
                    }

                    break;                    
                
                default:
                    rolList = rolRepository.findPagination(page, rowPage);
                    break;
            }

            rolDataModel = new RolDataModel(rolList);

        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());

        }

    }// </editor-fold>