From 00b19f9a3847ce03ae7f06cc07e98711589fae62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20De=20Craim?= <69531112+cedec1985@users.noreply.github.com> Date: Fri, 28 Aug 2026 21:17:05 +0200 Subject: [PATCH 1/3] Update JSP paths in ArticleServlet --- src/main/java/servlet/ArticleServlet.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/servlet/ArticleServlet.java b/src/main/java/servlet/ArticleServlet.java index f55196d..4b0b965 100644 --- a/src/main/java/servlet/ArticleServlet.java +++ b/src/main/java/servlet/ArticleServlet.java @@ -21,7 +21,7 @@ public class ArticleServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { List
articles = repo.findAll(); req.setAttribute("articles", articles); - req.getRequestDispatcher("/WEB-INF/articleForm.jsp").forward(req, resp); + req.getRequestDispatcher("/articleForm.jsp").forward(req, resp); } @Override @@ -41,6 +41,6 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws S req.getServletContext().setAttribute("articles", repo.findAll()); req.setAttribute("article", saved); - req.getRequestDispatcher("/WEB-INF/articleView.jsp").forward(req, resp); + req.getRequestDispatcher("/articleView.jsp").forward(req, resp); } } From 3266148c607c63cedb793b11fa8e520c9c2e75a9 Mon Sep 17 00:00:00 2001 From: cedec1985 Date: Fri, 28 Aug 2026 21:34:18 +0200 Subject: [PATCH 2/3] Refactor Article creation in ArticleServlet to use setter methods --- src/main/java/Product/Article.java | 19 ++++++++++++++++++- src/main/java/servlet/ArticleServlet.java | 5 ++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/Product/Article.java b/src/main/java/Product/Article.java index 4ba7914..25f5475 100644 --- a/src/main/java/Product/Article.java +++ b/src/main/java/Product/Article.java @@ -1,8 +1,15 @@ package Product; -import javax.persistence.*; import java.time.LocalDate; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.UniqueConstraint; + @Entity @Table(name = "articles", uniqueConstraints = { @UniqueConstraint(columnNames = {"ref"}), @@ -54,4 +61,14 @@ public String toString() { ", ean='" + ean + '\'' + '}'; } + + public void setProduct(Product p) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'setProduct'"); + } + + public void setDeliveryDate(String deliveryDate2) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'setDeliveryDate'"); + } } diff --git a/src/main/java/servlet/ArticleServlet.java b/src/main/java/servlet/ArticleServlet.java index 4b0b965..25a6317 100644 --- a/src/main/java/servlet/ArticleServlet.java +++ b/src/main/java/servlet/ArticleServlet.java @@ -34,7 +34,10 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws S String recipient = req.getParameter("recipient"); Product p = new Product(id, name, ref, ean); - Article a = new Article(p, deliveryDate, recipient); + Article a = new Article(); + a.setProduct(p); + a.setDeliveryDate(deliveryDate); + a.setRecipient(recipient); Article saved = repo.save(a); // update application attribute for barcode4j.jsp lookup convenience From 583811f100285008a061c0b7de3380ef8b56ad5f Mon Sep 17 00:00:00 2001 From: cedec1985 Date: Fri, 28 Aug 2026 21:38:37 +0200 Subject: [PATCH 3/3] =?UTF-8?q?Modifie=20la=20cr=C3=A9ation=20d'Article=20?= =?UTF-8?q?pour=20utiliser=20un=20constructeur=20avec=20param=C3=A8tres=20?= =?UTF-8?q?et=20ajuste=20la=20m=C3=A9thode=20save=20dans=20ArticleReposito?= =?UTF-8?q?ry=20pour=20=C3=A9viter=20d'appeler=20getProduct=20si=20non=20e?= =?UTF-8?q?xpos=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Product/Article.java | 10 +++++----- src/main/java/Product/ArticleRepository.java | 6 +++--- src/main/java/servlet/ArticleServlet.java | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/Product/Article.java b/src/main/java/Product/Article.java index 25f5475..4dfffc6 100644 --- a/src/main/java/Product/Article.java +++ b/src/main/java/Product/Article.java @@ -32,7 +32,7 @@ public class Article { private String recipient; - public Article() { } + public Article(Product newP, LocalDate localDate, String string) { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } @@ -63,12 +63,12 @@ public String toString() { } public void setProduct(Product p) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'setProduct'"); + this.name = p.getName(); + this.ref = p.getRef(); + this.ean = p.getEan(); } public void setDeliveryDate(String deliveryDate2) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'setDeliveryDate'"); + this.deliveryDate = LocalDate.parse(deliveryDate2); } } diff --git a/src/main/java/Product/ArticleRepository.java b/src/main/java/Product/ArticleRepository.java index d9117be..81bdd25 100644 --- a/src/main/java/Product/ArticleRepository.java +++ b/src/main/java/Product/ArticleRepository.java @@ -19,11 +19,11 @@ private ArticleRepository(){} public Article save(Article a) { if (a == null) return null; // If product has no id, generate one - if (a.getId() == null || a.getId().isEmpty()) { + if (a.getId() == null ) { String id = String.valueOf(counter.getAndIncrement()); // Product has no setter; create a new Product with the id - Product p = a.getProduct(); - Product newP = new Product(id, p != null ? p.getName() : null, p != null ? p.getRef() : null, p != null ? p.getEan() : null); + // Avoid calling a.getProduct() if Article does not expose it + Product newP = new Product(id, null, null, null); Article newA = new Article(newP, a.getDeliveryDate(), a.getRecipient()); articles.add(newA); return newA; diff --git a/src/main/java/servlet/ArticleServlet.java b/src/main/java/servlet/ArticleServlet.java index 25a6317..e6aa572 100644 --- a/src/main/java/servlet/ArticleServlet.java +++ b/src/main/java/servlet/ArticleServlet.java @@ -34,7 +34,7 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws S String recipient = req.getParameter("recipient"); Product p = new Product(id, name, ref, ean); - Article a = new Article(); + Article a = new Article(p, null, recipient); a.setProduct(p); a.setDeliveryDate(deliveryDate); a.setRecipient(recipient);