Está en la página 1de 8

UNIVERSIDAD DE EL SALVADOR 

FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE 


DEPARTAMENTO DE INGENIERÍA Y ARQUITECTURA 
PROGRAMACIÓN III 2019 
 
GUIA 04 - CRUD y JSF 
 
 
Objetivo:  ​Desarrollar  correctamente  un  CRUD  correspondiente  en  Java  utilizando 
las  herramientas  que  ofrece  el  entorno  de  desarrollo,  construyendo  una  interfaz 
visual web usando JSF y siguiendo las buenas prácticas de programación. 
 
A tomar en cuenta. 
Ante  cualquier  indicio,  sospecha  o  comprobación  de  copia,  fraude,  engaño o manipulación 
por  cualquier  medio, método, procedimiento, técnica o sistema, será sancionado el alumno 
correspondiente,  así  mismo  si  se  viesen  involucrados  dos  o  más  alumnos  la  sanción  será 
aplicada  a  todos  los  involucrados  por  igual,  invalidando  la  entrega  y  sancionado  de  igual 
manera  si  el  alumno  no  sigue  las  indicaciones  y  no  cumple  con  los  requerimientos  base  o 
manipula  la  entrega  o  no  respetando  el  ejercicio  asignado,  hora  de  entrega  se  sancionará 
de  igual  manera  y  asignando  como  sanción  la  nota  de  0.00  (cero  punto  cero)  en  la  guia 
correspondiente. 
 
 
CONOCIMIENTOS REQUERIDOS PARA EL DESARROLLO: 
● Conocer el uso de las siguientes anotaciones: 
○ @PostConstruct 
○ @Named 
○ @RequestScoped 
○ @SessionScoped 
○ @ViewScoped 
○ @LocalBean 
○ @Stateless 
○ @Stateful 
○ @Singletone 
○ @Inject 
○ @EJB 
● Conocimiento básico de EL (Expression Language). 
● Manejo de Java Server Faces. 
 
PARA LA ENTREGA 
Para  el  desarrollo  de  la  guía  debe  de  crear un proyecto Web de Maven (.war) con el nombre 
guia04 ​y agregar a su archivo pom.xml como dependencia ​cineData. 

 
Debe  trabajar  con  el  mismo  pool  de conexiones y el recurso jdbc ​(jdbc/cine) creado 
en  la  guía  anterior.  Igualmente  debe  utilizar  la  librería  de  entidades  cineData  que 
creó, recordando que: 
● Su groupId es ​ ​ues.occ.edu.sv.ingenieria.prn335 
● El  paquete  java  en  que  se  encuentran  creadas  las  entity  classes  a  utilizar  es: 
ues.occ.edu.sv.ingenieria.prn335.cineData.entity  
● Debe agregarse como dependencia al proyecto web. 
 
Igualmente la forma de crear la unidad de persistencia en el proyecto web será la misma: 
● Nombre Unidad de persistencia: ​cinePU. 
● Data source: ​jdbc/cine  
● Resource-type: ​JTA 
 
Se le pide que realice lo siguiente: 
1. Crear los siguientes paquetes: 
● ues.occ.edu.sv.ingenieria.prn335.guia04.control 
○ Dentro de este paquete creará su acceso a datos. 
● ues.occ.edu.sv.ingenieria.prn335.guia04.boundary 
○ Dentro de este paquete creará sus backingbeans. 
2. Programar  los  métodos  CRUD  para  la  entidad  correspondiente.  ​Deberá  utilizar  la 
misma entidad que le fue asignada en la guía02. 
3. Hacer  uso  de  páginas  y  etiquetas  JSF,  debe  ser  capaz  de  mostrar  la  información, 
modificar, agregar o eliminar registros correspondientes a la entidad asignada. 
4. Deberá validar la entrada de datos correctos en las vistas JSF. 
5. Ya  que  se  harán  transacciones  con  la  base  datos,  llamar  a  la  base  de  datos  en  uso 
como ​cine. 
6. En  el  directorio  Web  Pages  deberá  crear  un  archivo  JSF  page  con  el  nombre  de  su 
entidad, donde estará la respectiva vista para el usuario. 
 
ESTRUCTURA DEL PROYECTO 
Ejemplo: 

 
LAS CLASE AbstractFacade 
Será  la  clase  abstracta  donde  se  instancian  los  métodos  del  CRUD  para  solo 
tenerlos una sola vez y ser utilizados por todas las clases que heredan de él. 
Ejemplo: 
 

 
LA CLASE $BeanFacade 
Es  una  clase  que  hereda  de  AbstractFacade para poder utilizar sus métodos con una 
entidad determinada. 
Ejemplo 

 
FIRMAS DE MÉTODOS REQUERIDOS 
 
En su ​backing bean​ deberá crear: 
 
● public void crear();  
○ Debe de ser capaz de persistir registros en la base de datos. 
● public void eliminar(); 
○ Debe de ser capaz de eliminar registros en la base de datos. 
● public void modificar();  
○ Debe de ser capaz de modificar registros en la base de datos. 
● Además debe de crear un método llamado: 
public void obtener();  
○ Con  el  propósito  de  obtener  todos  los  registros  de  la  entidad  asignada  y 
almacenarlos en una lista ( que le servirá para llenar la tabla). 
● public List<$ENTIDAD> findByNameLike(String nombre);  
○ Con  el  propósito  de  obtener  uno  o  varios  registros  que  coincidan  con  valor 
introducido en el input  
 
Estos  métodos  acceden  mediante  la  clase  $BeanFacade  a  los  métodos 
creados  en  en el AbstractFacade, el cual es inyectado en en el backingbean 
mediante la anotación @Inject. 
Ejemplo: 
 
@Inject 
private ClasificacionFacade clasificacionFacade; 
 
public void crear(){ 
clasificacionFacade.create( clasificacion); 

 

 
 
 
 
 
 
 
VISTA SUGERIDA 

 
Funcionamiento del método findbynameLike 
 
 
 
 
REQUERIMIENTOS PARA LA ENTREGA: 
 
● El  formato del  usuario en ​Github debe de ser  ​carné-prn335-cicloII-2019, caso 
contrario no se le calificará. 
● Crear  un  repositorio  privado  con  el  nombre  ​guia04-viernes  y  agregar  el  usuario 
Pontifices ​como ​colaborador d ​ el repositorio. 
● El entregable será un proyecto Maven Web Application (.war). 
● El groupid a usar será:​ ues.occ.edu.sv.ingenieria.prn335. 
● El nombre del proyecto será: ​guia04. 
● La entrega será de manera Individual. 
● La unidad de persistencia debe de llamarse​ cinePU. 
● El nombre del data source a utilizar es​ jdbc/cine. 
● Fecha  límite  de  entrega  hasta  viernes  20  de  septiembre  11:59  p.m. 
(Proyectos  subidos  posterior  a  esta fecha y hora no serán calificados y se le asignará 
0.0 como nota final). 
 
 
CRITERIOS DE EVALUACIÓN. 
 
Uso de git y creación de .gitignore  0.0 punto 

Compilación y generación correcta del war  0.0 punto 

Uso  correcto  de  maven  (agregar  solo  1 punto 


dependencias necesarias) 

Uso  de  validaciones  y  manejo  de  1 punto 


excepciones 

Documentación de código  1 punto 

Funcionalidad  de  métodos  requeridos  4 puntos 


(CRUD) 

Uso  correcto  de  JSF  para  la presentación de  3 puntos 


la interfaz visual web.  

Utilización  de  hojas  de  estilo  para mejorar la  1 punto 


apariencia  visual  de  las  vistas  (​OPCIONAL, 
sin frameworks​) 
 
DOCUMENTACION SUGERIDA: 
● https://www.baeldung.com/intro-to-jsf-expression-language  
● https://www.adictosaltrabajo.com/2009/03/26/introduccion-jsf-java/  
● https://youtu.be/EnmAN3Q1qS0

También podría gustarte