From 1d9852906d59aca2944b6eb571f3ac2133c0c6db Mon Sep 17 00:00:00 2001 From: cberge Date: Thu, 13 Jun 2024 12:51:56 +0200 Subject: [PATCH] =?UTF-8?q?commit=20affichage=20collaborateur=20+=20foncti?= =?UTF-8?q?onnalit=C3=A9=20cr=C3=A9er=20collaborateur=20ok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProDigiUp_GesCollab/pom.xml | 21 ++ .../java/controllers/CreerCollaborateur.java | 68 +++++ .../java/controllers/FicheCollaborateur.java | 39 +++ .../src/main/java/dao/CollaborateurDao.java | 157 +++++++++++ .../src/main/java/dao/Dao.java | 12 +- .../src/main/java/dao/DaoFactory.java | 12 +- .../src/main/java/dao/TestCollaborateur.java | 38 +++ .../src/main/java/entities/Collaborateur.java | 260 ++++++++++++++++++ .../forms/CreerCollaborateurFormChecker.java | 100 +++++++ .../src/main/java/forms/FormChecker.java | 43 +++ .../main/webapp/WEB-INF/jsp/collaborateur.jsp | 45 +++ .../src/main/webapp/WEB-INF/web.xml | 7 + .../src/main/webapp/index.html | 10 - 13 files changed, 800 insertions(+), 12 deletions(-) create mode 100644 ProDigiUp_GesCollab/src/main/java/controllers/CreerCollaborateur.java create mode 100644 ProDigiUp_GesCollab/src/main/java/controllers/FicheCollaborateur.java create mode 100644 ProDigiUp_GesCollab/src/main/java/dao/CollaborateurDao.java create mode 100644 ProDigiUp_GesCollab/src/main/java/dao/TestCollaborateur.java create mode 100644 ProDigiUp_GesCollab/src/main/java/entities/Collaborateur.java create mode 100644 ProDigiUp_GesCollab/src/main/java/forms/CreerCollaborateurFormChecker.java create mode 100644 ProDigiUp_GesCollab/src/main/java/forms/FormChecker.java create mode 100644 ProDigiUp_GesCollab/src/main/webapp/WEB-INF/jsp/collaborateur.jsp delete mode 100644 ProDigiUp_GesCollab/src/main/webapp/index.html diff --git a/ProDigiUp_GesCollab/pom.xml b/ProDigiUp_GesCollab/pom.xml index 4c10ad5..915e6bb 100644 --- a/ProDigiUp_GesCollab/pom.xml +++ b/ProDigiUp_GesCollab/pom.xml @@ -14,6 +14,27 @@ + org.mariadb.jdbc + mariadb-java-client + 3.3.3 + + + org.glassfish.web + jakarta.servlet.jsp.jstl + 2.0.0 + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + + + jakarta.platform jakarta.jakartaee-api ${jakartaee} diff --git a/ProDigiUp_GesCollab/src/main/java/controllers/CreerCollaborateur.java b/ProDigiUp_GesCollab/src/main/java/controllers/CreerCollaborateur.java new file mode 100644 index 0000000..345a7c3 --- /dev/null +++ b/ProDigiUp_GesCollab/src/main/java/controllers/CreerCollaborateur.java @@ -0,0 +1,68 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Other/File.java to edit this template + */ +package controllers; + +import dao.CollaborateurDao; +import entities.Collaborateur; +import forms.CreerCollaborateurFormChecker; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.sql.SQLException; +import java.util.logging.Level; +import java.util.logging.Logger; + + +/** + * + * @author cberge + */ + +@WebServlet("/creer_collaborateur") +@SuppressWarnings("serial") +public class CreerCollaborateur extends HttpServlet{ + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + req.getRequestDispatcher ("/WEB-INF/jsp/creerCollaborateur.jsp"). forward(req, resp); + + } + + + @Override + protected void doPost (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + req.setCharacterEncoding(StandardCharsets.UTF_8.toString()); + CreerCollaborateurFormChecker nv = new CreerCollaborateurFormChecker(req); + Collaborateur collaborateur = nv.checkForm(); + + + if (nv.getErrors().isEmpty()){ + CollaborateurDao collaborateurDao = new CollaborateurDao(); + // Appel de la méthode create du DOA + // Si une erreur dans l'insert alors une SQLException est levé + // On l'intercepte dans le catch et on affiche un msg d'erreur à l'utilisateur + try { + collaborateurDao.create(collaborateur); + Collaborateur collab = collaborateurDao.read(collaborateur.getId()); + req.setAttribute("collaborateur", collab); + req.setAttribute("message", "Votre collaborateur est bien enregistré"); + req.getRequestDispatcher("/WEB-INF/jsp/collaborateur.jsp").forward(req, resp); + + } catch (SQLException ex) { + Logger.getLogger(CreerCollaborateur.class.getName()).log(Level.SEVERE, null, ex); + req.setAttribute("errorMsg", "Votre formulaire comporte des erreurs"); + req.getRequestDispatcher("/WEB-INF/jsp/creerCollaborateur.jsp/").forward(req, resp); + } + }else{ + req.setAttribute("errorMsg", "Votre formulaire comporte des erreurs"); + req.getRequestDispatcher("/WEB-INF/jsp/creerCollaborateur.jsp").forward(req, resp); + } + +} +} \ No newline at end of file diff --git a/ProDigiUp_GesCollab/src/main/java/controllers/FicheCollaborateur.java b/ProDigiUp_GesCollab/src/main/java/controllers/FicheCollaborateur.java new file mode 100644 index 0000000..2c7d530 --- /dev/null +++ b/ProDigiUp_GesCollab/src/main/java/controllers/FicheCollaborateur.java @@ -0,0 +1,39 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Other/File.java to edit this template + */ +package controllers; +import dao.CollaborateurDao; +import entities.Collaborateur; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +/** + * + * @author cberge + */ +@WebServlet("/collaborateur") +public class FicheCollaborateur extends HttpServlet { + +@Override +protected void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + //req.setCharacterEncoding(StandardCharsets.UTF_8.toString()); + // Récupérer l'identifiant du collaborateur depuis la requête + int collaborateurId = 3; + + CollaborateurDao collaborateurDao = new CollaborateurDao (); + // Lire les informations du collaborateur depuis la base de données + Collaborateur collaborateur = collaborateurDao.read(collaborateurId); + + // Transmettre les informations du collaborateur à la page JSP + req.setAttribute("collaborateur", collaborateur); + req.getRequestDispatcher("/WEB-INF/jsp/collaborateur.jsp").forward(req, resp); + +} + + +} diff --git a/ProDigiUp_GesCollab/src/main/java/dao/CollaborateurDao.java b/ProDigiUp_GesCollab/src/main/java/dao/CollaborateurDao.java new file mode 100644 index 0000000..e79298b --- /dev/null +++ b/ProDigiUp_GesCollab/src/main/java/dao/CollaborateurDao.java @@ -0,0 +1,157 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Other/File.java to edit this template + */ +package dao; + +import entities.Collaborateur; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.time.LocalDate; + + +/** + * + * @author cberge + */ +public class CollaborateurDao extends Dao { + + public CollaborateurDao() { + super("Collaborateur"); + } + + @Override + public Collaborateur read(Integer id) { + Collaborateur obj = null; + String sql = "SELECT * FROM collaborateur WHERE id_collaborateur=?"; + PreparedStatement pstmt; + try { + pstmt = connexion.prepareStatement(sql); + pstmt.setInt(1, id); + ResultSet rs = pstmt.executeQuery(); + if (rs.first()) { + obj = new Collaborateur(); + obj.setId(rs.getInt("id_collaborateur")); + obj.setMatricule(rs.getInt("matricule")); + obj.setNom(rs.getString("nom")); + obj.setPrenom(rs.getString("prenom")); + obj.setDate_de_naissance(rs.getDate("date_de_naissance").toLocalDate()); + obj.setNumero_voie(rs.getString("numero_voie")); + obj.setAdresse(rs.getString("adresse")); + obj.setCode_postal(rs.getInt("code_postal")); + obj.setVille(rs.getString("ville")); + obj.setTelephone_personnel(rs.getString("telephone_personnel")); + obj.setStatut(rs.getString("statut")); + obj.setCategorie(rs.getString("categorie")); + obj.setGenre(rs.getString("genre")); + obj.setRqth(rs.getString("rqth")); + obj.setMetier(rs.getString("metier")); + } + } catch (SQLException ex) { + System.err.println("Erreur lors de la lecture : " + ex.getMessage()); + } + return obj; + } + + @Override + protected Collaborateur createObject(ResultSet rs) throws SQLException { + Collaborateur obj = new Collaborateur(); + obj.setId(rs.getInt("id_" + table)); + obj.setMatricule(rs.getInt("matricule")); + obj.setNom(rs.getString("nom")); + obj.setPrenom(rs.getString("prenom")); + obj.setDate_de_naissance(rs.getDate("date_de_naissance").toLocalDate()); + obj.setNumero_voie(rs.getString("numero_voie")); + obj.setAdresse(rs.getString("adresse")); + obj.setCode_postal(rs.getInt("code_postal")); + obj.setVille(rs.getString("ville")); + obj.setTelephone_personnel(rs.getString("telephone_personnel")); + obj.setStatut(rs.getString("statut")); + obj.setCategorie(rs.getString("categorie")); + obj.setGenre(rs.getString("genre")); + obj.setRqth(rs.getString("rqth")); + obj.setMetier(rs.getString("metier")); + + return obj; + } + + @Override + public void create(Collaborateur obj) throws SQLException{ + String sql = "INSERT INTO collaborateur (matricule, nom, prenom, date_de_naissance, numero_voie, adresse, code_postal, ville, telephone_personnel, statut, categorie, genre, rqth, metier)" + + "VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + + try { + PreparedStatement pstmt = connexion.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS); + pstmt.setInt(1, obj.getMatricule()); + + pstmt.setString(2, obj.getNom()); + pstmt.setString(3, obj.getPrenom()); + + LocalDate localDate = obj.getDate_de_naissance(); + if (localDate != null) { + pstmt.setDate(4, java.sql.Date.valueOf(localDate)); + } else { + pstmt.setDate(4, null); + } + pstmt.setString(5, obj.getNumero_voie()); + pstmt.setString(6, obj.getAdresse()); + pstmt.setInt(7, obj.getCode_postal()); + pstmt.setString(8, obj.getVille()); + pstmt.setString(9, obj.getTelephone_personnel()); + pstmt.setString(10, obj.getStatut()); + pstmt.setString(11, obj.getCategorie()); + pstmt.setString(12, obj.getGenre()); + pstmt.setString(13, obj.getRqth()); + pstmt.setString(14, obj.getMetier()); + int nbLines = pstmt.executeUpdate(); + if (nbLines == 1) { + ResultSet autoGeneratedKeys = pstmt.getGeneratedKeys(); + autoGeneratedKeys.first(); + int id = autoGeneratedKeys.getInt(1); + obj.setId(id); + + } + } catch (SQLException ex) { + System.err.println("Erreur lors de l'insertion : " + ex.getMessage()); + throw ex; + + } + } + + @Override + public void update (Collaborateur obj){ + String sql = "UPDATE collaborateur SET matricule=?, nom=?, prenom=?, date_de_naissance=?, numero_voie=?, adresse=?, code_postal=?, ville=?, telephone_personnel=?, statut=?, categorie=?, genre=?, rqth=?, metier=?" + + "WHERE id_collaborateur=?"; + + try{ + PreparedStatement pstmt = connexion.prepareStatement(sql); + pstmt.setInt(1, obj.getMatricule()); + pstmt.setString(2, obj.getNom()); + pstmt.setString(3, obj.getPrenom()); + + LocalDate localDate = obj.getDate_de_naissance(); + if (localDate != null) { + pstmt.setDate(4, java.sql.Date.valueOf(localDate)); + } else { + pstmt.setDate(4, null); + } + pstmt.setString(5, obj.getNumero_voie()); + pstmt.setString(6, obj.getAdresse()); + pstmt.setInt(7, obj.getCode_postal()); + pstmt.setString(8, obj.getVille()); + pstmt.setString(9, obj.getTelephone_personnel()); + pstmt.setString(10, obj.getStatut()); + pstmt.setString(11, obj.getCategorie()); + pstmt.setString(12, obj.getGenre()); + pstmt.setString(13, obj.getRqth()); + pstmt.setString(14, obj.getMetier()); + + pstmt.executeUpdate(); + + + }catch (SQLException ex){ + System.out.println("Erreur lors de l'update : " + ex.getMessage()); + } + } +} diff --git a/ProDigiUp_GesCollab/src/main/java/dao/Dao.java b/ProDigiUp_GesCollab/src/main/java/dao/Dao.java index ebcfc57..aeba78e 100644 --- a/ProDigiUp_GesCollab/src/main/java/dao/Dao.java +++ b/ProDigiUp_GesCollab/src/main/java/dao/Dao.java @@ -30,7 +30,17 @@ public abstract class Dao { protected abstract T createObject (ResultSet rs) throws SQLException; - + protected abstract void create(T obj)throws SQLException; + + protected abstract void update(T obj); + + public void save (T obj) throws SQLException{ + if (obj.getId() == null) { + create(obj); + }else{ + update(obj); + } + } public T read (Integer id){ T obj = null; String sql = "SELECT * FROM " + table + "WHERE id_" + table + "=?"; diff --git a/ProDigiUp_GesCollab/src/main/java/dao/DaoFactory.java b/ProDigiUp_GesCollab/src/main/java/dao/DaoFactory.java index 4e076e8..a700ed3 100644 --- a/ProDigiUp_GesCollab/src/main/java/dao/DaoFactory.java +++ b/ProDigiUp_GesCollab/src/main/java/dao/DaoFactory.java @@ -9,6 +9,16 @@ package dao; * @author cberge */ public class DaoFactory { - + private static CollaborateurDao collaborateurDao; + + private DaoFactory(){ +} + + public static CollaborateurDao getCollaborateurDao(){ + if (collaborateurDao == null) { + collaborateurDao = new CollaborateurDao(); + } + return collaborateurDao; + } } diff --git a/ProDigiUp_GesCollab/src/main/java/dao/TestCollaborateur.java b/ProDigiUp_GesCollab/src/main/java/dao/TestCollaborateur.java new file mode 100644 index 0000000..d131c72 --- /dev/null +++ b/ProDigiUp_GesCollab/src/main/java/dao/TestCollaborateur.java @@ -0,0 +1,38 @@ +/* + + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Other/File.java to edit this template + */ +package dao; + +import entities.Collaborateur; + + + +/** + * + * @author cberge + */ +public class TestCollaborateur { + + /** + * @param args the command line arguments + */ + public static void main(String args[]) { + // TODO code application logic here + +CollaborateurDao collDao = new CollaborateurDao(); +Collaborateur collab = collDao.read(1); + System.out.println("collab : " + collab.getId() + " " + collab.getMatricule() + " " + collab.getNom() + " " + collab.getPrenom() + " " + collab.getDate_de_naissance() + " " + collab.getNumero_voie() + " " + + collab.getAdresse() + " " + collab.getCode_postal() + " " + collab.getVille() + " " + collab.getTelephone_personnel() + " " + collab.getStatut() + " " + collab.getCategorie() + " " + collab.getGenre() + " " + + collab.getRqth() + " " + collab.getMetier()); + + + + + + + + } + + +} diff --git a/ProDigiUp_GesCollab/src/main/java/entities/Collaborateur.java b/ProDigiUp_GesCollab/src/main/java/entities/Collaborateur.java new file mode 100644 index 0000000..b9bc734 --- /dev/null +++ b/ProDigiUp_GesCollab/src/main/java/entities/Collaborateur.java @@ -0,0 +1,260 @@ + +package entities; + +import java.io.Serializable; + +import java.util.Objects; +import java.time.LocalDate; + +/** + * + * @author cberge + */ +@SuppressWarnings("serial") +public class Collaborateur implements Identifiable, Serializable { + + private Integer id; + private Integer matricule; + private String nom; + private String prenom; + private LocalDate date_de_naissance; + private String numero_voie; + private String adresse; + private Integer code_postal; + private String ville; + private String telephone_personnel; + private String statut; + private String categorie; + private String genre; + private String rqth; + private String metier; + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("Collaborateur{"); + sb.append("id=").append(id); + sb.append(", matricule=").append(matricule); + sb.append(", nom=").append(nom); + sb.append(", prenom=").append(prenom); + sb.append(", date_de_naissance=").append(date_de_naissance); + sb.append(", numero_voie=").append(numero_voie); + sb.append(", adresse=").append(adresse); + sb.append(", code_postal=").append(code_postal); + sb.append(", ville=").append(ville); + sb.append(", telephone_personnel=").append(telephone_personnel); + sb.append(", statut=").append(statut); + sb.append(", categorie=").append(categorie); + sb.append(", genre=").append(genre); + sb.append(", rqth=").append(rqth); + sb.append(", metier=").append(metier); + sb.append('}'); + return sb.toString(); + } + + @Override + public int hashCode() { + int hash = 7; + hash = 89 * hash + Objects.hashCode(this.id); + hash = 89 * hash + Objects.hashCode(this.matricule); + hash = 89 * hash + Objects.hashCode(this.nom); + hash = 89 * hash + Objects.hashCode(this.prenom); + hash = 89 * hash + Objects.hashCode(this.date_de_naissance); + hash = 89 * hash + Objects.hashCode(this.numero_voie); + hash = 89 * hash + Objects.hashCode(this.adresse); + hash = 89 * hash + Objects.hashCode(this.code_postal); + hash = 89 * hash + Objects.hashCode(this.ville); + hash = 89 * hash + Objects.hashCode(this.telephone_personnel); + hash = 89 * hash + Objects.hashCode(this.statut); + hash = 89 * hash + Objects.hashCode(this.categorie); + hash = 89 * hash + Objects.hashCode(this.genre); + hash = 89 * hash + Objects.hashCode(this.rqth); + hash = 89 * hash + Objects.hashCode(this.metier); + return hash; + } + + + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final Collaborateur other = (Collaborateur) obj; + if (!Objects.equals(this.nom, other.nom)) { + return false; + } + if (!Objects.equals(this.prenom, other.prenom)) { + return false; + } + if (!Objects.equals(this.adresse, other.adresse)) { + return false; + } + if (!Objects.equals(this.ville, other.ville)) { + return false; + } + if (!Objects.equals(this.statut, other.statut)) { + return false; + } + if (!Objects.equals(this.categorie, other.categorie)) { + return false; + } + if (!Objects.equals(this.genre, other.genre)) { + return false; + } + if (!Objects.equals(this.rqth, other.rqth)) { + return false; + } + if (!Objects.equals(this.metier, other.metier)) { + return false; + } + if (!Objects.equals(this.id, other.id)) { + return false; + } + if (!Objects.equals(this.matricule, other.matricule)) { + return false; + } + if (!Objects.equals(this.date_de_naissance, other.date_de_naissance)) { + return false; + } + if (!Objects.equals(this.numero_voie, other.numero_voie)) { + return false; + } + if (!Objects.equals(this.code_postal, other.code_postal)) { + return false; + } + return Objects.equals(this.telephone_personnel, other.telephone_personnel); + } + + + + @Override + public Integer getId() { + return id; + } + + @Override + public void setId(Integer id) { + this.id = id; + } + + public Integer getMatricule() { + return matricule; + } + + public void setMatricule(Integer matricule) { + this.matricule = matricule; + } + + public String getNom() { + return nom; + } + + public void setNom(String nom) { + this.nom = nom; + } + + public String getPrenom() { + return prenom; + } + + public void setPrenom(String prenom) { + this.prenom = prenom; + } + + public LocalDate getDate_de_naissance() { + return date_de_naissance; + } + + public void setDate_de_naissance(LocalDate date_de_naissance) { + this.date_de_naissance = date_de_naissance; + } + + public String getNumero_voie() { + return numero_voie; + } + + public void setNumero_voie(String numero_voie) { + this.numero_voie = numero_voie; + } + + public String getAdresse() { + return adresse; + } + + public void setAdresse(String adresse) { + this.adresse = adresse; + } + + public Integer getCode_postal() { + return code_postal; + } + + public void setCode_postal(Integer code_postal) { + this.code_postal = code_postal; + } + + public String getVille() { + return ville; + } + + public void setVille(String ville) { + this.ville = ville; + } + + public String getTelephone_personnel() { + return telephone_personnel; + } + + public void setTelephone_personnel(String telephone_personnel) { + this.telephone_personnel = telephone_personnel; + } + + + + public String getStatut() { + return statut; + } + + public void setStatut(String statut) { + this.statut = statut; + } + + public String getCategorie() { + return categorie; + } + + public void setCategorie(String categorie) { + this.categorie = categorie; + } + + public String getGenre() { + return genre; + } + + public void setGenre(String genre) { + this.genre = genre; + } + + public String getRqth() { + return rqth; + } + + public void setRqth(String rqth) { + this.rqth = rqth; + } + + public String getMetier() { + return metier; + } + + public void setMetier(String metier) { + this.metier = metier; + } +} diff --git a/ProDigiUp_GesCollab/src/main/java/forms/CreerCollaborateurFormChecker.java b/ProDigiUp_GesCollab/src/main/java/forms/CreerCollaborateurFormChecker.java new file mode 100644 index 0000000..0989dae --- /dev/null +++ b/ProDigiUp_GesCollab/src/main/java/forms/CreerCollaborateurFormChecker.java @@ -0,0 +1,100 @@ +package forms; +import dao.DaoFactory; +import entities.Collaborateur; +import forms.FormChecker; +import jakarta.servlet.http.HttpServletRequest; +import java.util.Date; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; + +public class CreerCollaborateurFormChecker extends FormChecker { + + public CreerCollaborateurFormChecker(HttpServletRequest request) { + super(request); + } + + @Override + public Collaborateur checkForm() { + Collaborateur obj = new Collaborateur(); + + String matriculeStr = request.getParameter("matricule"); + String nom = request.getParameter("nom"); + String prenom = request.getParameter("prenom"); + String dateDeNaissanceStr = request.getParameter("date_de_naissance"); + String numero_voie = request.getParameter("numero_voie"); + String adresse = request.getParameter("adresse"); + String codePostalStr = request.getParameter("code_postal"); + String ville = request.getParameter("ville"); + String telephone_personnel = request.getParameter("telephone_personnel"); + String statut = request.getParameter("statut"); + String categorie = request.getParameter("categorie"); + String genre = request.getParameter("genre"); + String rqth = request.getParameter("rqth"); + String metier = request.getParameter("metier"); + + // Convertir les champs Integer + try { + Integer matricule = Integer.parseInt(matriculeStr); + obj.setMatricule(matricule); + } catch (NumberFormatException e) { + System.err.println("Erreur de conversion pour le champ matricule : " + e.getMessage()); + } + + try { + Integer code_postal = Integer.parseInt(codePostalStr); + obj.setCode_postal(code_postal); + } catch (NumberFormatException e) { + System.err.println("Erreur de conversion pour le champ code_postal : " + e.getMessage()); + } + + /* Convertir les champs Date + String dateDeNaissanceStr = getParameter("date_de_naissance"); + Date date_de_naissance = null; + if (dateDeNaissanceStr != null && !dateDeNaissanceStr.isEmpty()) { + try { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + date_de_naissance = formatter.parse(dateDeNaissanceStr); + obj.setDate_de_naissance(date_de_naissance); + } catch (ParseException e) { + System.err.println("Erreur de conversion pour le champ date_de_naissance : " + e.getMessage()); + } + } else { + System.err.println("Le champ date_de_naissance est vide ou non valide."); + }*/ + // Convertir les champs Date + LocalDate date_de_naissance = null; + if (dateDeNaissanceStr != null && !dateDeNaissanceStr.isEmpty()) { + try { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + date_de_naissance = LocalDate.parse(dateDeNaissanceStr, formatter); + obj.setDate_de_naissance(date_de_naissance); + } catch (DateTimeParseException e) { + setError("date_de_naissance", "Erreur de conversion pour le champ date_de_naissance : " + e.getMessage()); + } + } else { + setError("date_de_naissance", "Le champ date_de_naissance est vide ou non valide."); + } + + // Traiter les autres champs String + obj.setNom(nom); + obj.setPrenom(prenom); + obj.setNumero_voie(numero_voie); + obj.setAdresse(adresse); + obj.setVille(ville); + obj.setTelephone_personnel(telephone_personnel); + obj.setStatut(statut); + obj.setCategorie(categorie); + obj.setGenre(genre); + obj.setRqth(rqth); + obj.setMetier(metier); + + if(errors.isEmpty()){ + //DaoFactory.getCollaborateurDao().save(obj); + } + request.setAttribute("bean", obj); + return obj; + } +} \ No newline at end of file diff --git a/ProDigiUp_GesCollab/src/main/java/forms/FormChecker.java b/ProDigiUp_GesCollab/src/main/java/forms/FormChecker.java new file mode 100644 index 0000000..fa75fc6 --- /dev/null +++ b/ProDigiUp_GesCollab/src/main/java/forms/FormChecker.java @@ -0,0 +1,43 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Other/File.java to edit this template + */ +package forms; + +import jakarta.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +/** + * + * @author cberge + */ +public abstract class FormChecker { + + protected Map errors; + protected HttpServletRequest request; + + public FormChecker(HttpServletRequest request) { + this.errors = new HashMap<>(); + this.request = request; + } + + public abstract T checkForm(); + + public Map getErrors() { + return errors; + } + public boolean hasErrors() { + return !errors.isEmpty(); + } + + protected void setError(String key, String value) { + this.errors.put(key, value); + } + + protected String getParameter(String key) { + return request.getParameter(key) + == null ? "" : request.getParameter(key); + } + +} diff --git a/ProDigiUp_GesCollab/src/main/webapp/WEB-INF/jsp/collaborateur.jsp b/ProDigiUp_GesCollab/src/main/webapp/WEB-INF/jsp/collaborateur.jsp new file mode 100644 index 0000000..976dbf8 --- /dev/null +++ b/ProDigiUp_GesCollab/src/main/webapp/WEB-INF/jsp/collaborateur.jsp @@ -0,0 +1,45 @@ +<%-- + Document : collaborateur + Created on : 11 juin 2024, 13:40:04 + Author : cberge +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix= "c" %> + + + + + + "> + "> + + + + +
+
+ Fiche Collaborateur + +

ID:

+

Matricule:

+

Genre:

+

Nom:

+

Prénom:

+

Date de naissance:

+

Numéro de voie:

+

Adresse:

+

Code postal:

+

Ville:

+

Téléphone personnel:

+

Statut:

+

Catégorie:

+

RQTH:

+

Métier:

+ +
+
+ + + + \ No newline at end of file diff --git a/ProDigiUp_GesCollab/src/main/webapp/WEB-INF/web.xml b/ProDigiUp_GesCollab/src/main/webapp/WEB-INF/web.xml index 4de8ff3..eef23d2 100644 --- a/ProDigiUp_GesCollab/src/main/webapp/WEB-INF/web.xml +++ b/ProDigiUp_GesCollab/src/main/webapp/WEB-INF/web.xml @@ -8,4 +8,11 @@ 30 + + diff --git a/ProDigiUp_GesCollab/src/main/webapp/index.html b/ProDigiUp_GesCollab/src/main/webapp/index.html deleted file mode 100644 index 3b4ad80..0000000 --- a/ProDigiUp_GesCollab/src/main/webapp/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - Start Page - - - -

Hello World!

- - -- GitLab