package controleur; import Metier.Categorie; import Metier.CategorieService; import Metier.Livre; import Metier.LivreService; import java.io.IOException; import java.util.List; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class ModifyLivre extends HttpServlet { public static final String VUE_MODIFY = "/privateAcces/ModifyLivre.jsp"; public static final String VUE_ACCUEIL = "/Accueil.jsp"; public static final String VUE_RECHERCHE = "/Recherche.jsp"; public static final String PARAM_ID = "id"; public static final String CHAMP_TITRE = "titre"; public static final String CHAMP_AUTEUR = "auteur"; public static final String CHAMP_TOME = "tome"; public static final String CHAMP_EXEMPLAIRE = "exemplaire"; public static final String CHAMP_ORIGINE = "origine"; public static final String CHAMP_ANNEE = "annee"; public static final String CHAMP_PRIX = "prix"; public static final String CHAMP_LOCALISATION = "localisation"; public static final String CHAMP_CATEGORIE = "categorie"; public static final String ATT_LIVRE = "livre"; public static final String ATT_RESULTAT = "resultat"; private String id; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* Affichage de la page de modification */ this.getServletContext().getRequestDispatcher(this.VUE_ACCUEIL).forward( request, response ); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* Récupération d'id envoié */ this.id = request.getParameter(this.PARAM_ID); Livre livre = Metier.MetierFactory.getLivreService().getById(this.id); /* Stockage du résultat dans l'objet request */ request.setAttribute(this.ATT_LIVRE, livre); this.getServletContext().getRequestDispatcher(this.VUE_MODIFY).forward( request, response ); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); ServletContext context = getServletConfig().getServletContext(); /* Récupération des champs du formulaire. */ String titre = request.getParameter(this.CHAMP_TITRE); String auteur = request.getParameter(this.CHAMP_AUTEUR); String tome = request.getParameter(this.CHAMP_TOME); int exemplaire = Integer.parseInt(request.getParameter(this.CHAMP_EXEMPLAIRE)); String origine = request.getParameter(this.CHAMP_ORIGINE); String annee = request.getParameter(this.CHAMP_ANNEE); String prix = request.getParameter(this.CHAMP_PRIX); String localisation = request.getParameter(this.CHAMP_LOCALISATION); String categorie = request.getParameter(this.CHAMP_CATEGORIE); Livre l = new Livre(auteur, titre, localisation, tome, exemplaire, annee, prix, origine); l.setId(this.id); CategorieService categorieSrv = Metier.MetierFactory.getCategorieService(); Categorie c = categorieSrv.getByNom(categorie); l.setCatégorie(c); LivreService livreSrv = Metier.MetierFactory.getLivreService(); livreSrv.update(l); String resultat = "<div class=\"alert alert-success alert-dismissable\">\n" + " <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">×</button>\n" + " Le livre <strong>"+ l.getTitre() +"</strong> a été modifié.\n" + "</div>"; List<Livre> livres = (List<Livre>) session.getAttribute("lastRecherche"); for(int i=0; i<livres.size(); i++){ if(livres.get(i).getId().equals(l.getId())){ if(context.getAttribute("nbLivres") != null){ int nbLivres = (int) context.getAttribute("nbLivres"); if(livres.get(i).getExemplaire() > l.getExemplaire()){ nbLivres = nbLivres - (livres.get(i).getExemplaire() - l.getExemplaire()); } else if(livres.get(i).getExemplaire() < l.getExemplaire()) { nbLivres = nbLivres + (l.getExemplaire() - livres.get(i).getExemplaire()); } context.setAttribute("nbLivres", nbLivres); } livres.set(i, l); session.setAttribute("lastRecherche", livres); } } request.setAttribute(this.ATT_RESULTAT, resultat); this.getServletContext().getRequestDispatcher(this.VUE_RECHERCHE).forward( request, response ); } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }