Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%-- This file is an entry point for JavaServer Faces application. --%> <f:view> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <h:outputText value="FORMULAIRE" /> <h:outputText value="Nom"/><h:inputText value="#{PersonCR.newPerson.nom}" id="nom" required="true" requiredMessage="Prénom obligatoire"/> <h:outputText value="Prenom"/><h:inputText value="#{PersonCR.newPerson.prenom}" id="prenom" /> <h:commandButton value="Ajouter" action="#{PersonCR.createPerson}" /> </html> </f:view>
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package pack1; import javax.faces.model.DataModel; import javax.faces.model.ListDataModel; /** * C'est le contrôleur JSF qui fait le lien entre l'IHM et la partie métier. * * @author [mailto:djo.mos.contact@gmail.com djo.mos] * */ public class PersonCR { private DataModel persons; private person newPerson = new person(); private person editPerson; private personDAO pDao = new personDAO(); /** * L'opération create à invoquer suite au remplissage d'un formulaire * * @return outcome pour la navigation entre les pages. Dans ce cas, c'est * "list" pour retourner à la page de listing. */ public String createPerson() { pDao.insert(newPerson); newPerson = new person(); persons.setWrappedData(pDao.selectAll()); return "list"; } /** * L'opération de suppression à invoquer suite à la sélection d'unbe * personne. * * @return outcome pour la navigation entre les pages. Dans ce cas, c'est null pour * rester dans la page de listing. */ public String deletePerson() { person p = (person) persons.getRowData(); pDao.delete(p); persons.setWrappedData(pDao.selectAll()); return null; } /** * Opération intermédiaire pour récupérer la personne à modifier. * @return outcome pour la navigation entre les pages. Dans ce cas, c'est "edit" pour * aller à la page de modification. **/ public String editPerson() { editPerson = (person) persons.getRowData(); return "edit"; } /** * L'opération Update pour faire la mise à jour. * @return outcome pour la navigation entre les pages. Dans ce cas, c'est "list" pour * retourner à la page de listing. **/ public String updatePerson() { pDao.update(editPerson); persons.setWrappedData(pDao.selectAll()); return "list"; } public DataModel getPersons() { if (persons == null) { persons = new ListDataModel(); persons.setWrappedData(pDao.selectAll()); } return persons; } public void setPersons(DataModel persons) { this.persons = persons; } public person getNewPerson() { return newPerson; } public void setNewPerson(person person) { this.newPerson = person; } public person getEditPerson() { return editPerson; } public void setEditPerson(person editPerson) { this.editPerson = editPerson; } }
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package pack1; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; /** * * @author cloclo */ @Entity public class person { private Long id; private String nom; private String prenom; /** * C'est l'accesseur de l'identifiant. * On indique qu'un champ est un identifiant en l'annotant avec Id. * De plus, si on ajoute GeneratedValue, alors c'est la base de données ou * l'implémentation JPA qui se charge d'affecter un identifiant unique. * * @return l'identifiant. */ @Id @GeneratedValue public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getNom() { return nom; } public void setNom(String firstName) { this.nom = nom; } public String getPrenom() { return prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } }
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package pack1; /** * * @author cloclo */ import java.util.List; import javax.persistence.EntityManager; import javax.persistence.Persistence; import pack1.person; /** * C'est le DAO qui permet d'effectuer des opérations portant sur une personne * dans la base de données. * * @author [mailto:djo.mos.contact@gmail.com djo.mos] * */ public class personDAO { private static final String JPA_UNIT_NAME = "test"; private EntityManager entityManager; /** * L'opération Read * @return toutes les personnes dans la base de données. */ public List selectAll() { List persons = getEntityManager().createQuery( "select p from person p").getResultList(); return persons; } /** * L'opération Create * @param u La personne à insérer dans la base de données. * @return La personne insérée */ public person insert(person u) { getEntityManager().getTransaction().begin(); getEntityManager().persist(u); getEntityManager().getTransaction().commit(); return u; } /** * L'opération Update * @param u La personne à mettre à jour dans la base de données. * @return La personne mise à jour */ public person update(person u) { getEntityManager().getTransaction().begin(); u = getEntityManager().merge(u); getEntityManager().getTransaction().commit(); return u; } /** * L'opération Delete * @param u La personne à supprimer de la base de donnés. */ public void delete(person u) { getEntityManager().getTransaction().begin(); u = getEntityManager().merge(u); getEntityManager().remove(u); getEntityManager().getTransaction().commit(); } protected EntityManager getEntityManager() { if (entityManager == null) { entityManager = Persistence.createEntityManagerFactory( JPA_UNIT_NAME).createEntityManager(); } return entityManager; } }