Commit b00a4b1c by Patryk Czarnik

Formularz edycji danych - zapisywanie nowych produktów

parent fb15ac05
...@@ -21,29 +21,33 @@ public class EditProduct extends HttpServlet { ...@@ -21,29 +21,33 @@ public class EditProduct extends HttpServlet {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int productId = Integer.parseInt(request.getParameter("productId")); String parametrId = request.getParameter("productId");
if(parametrId != null) {
int productId = Integer.parseInt(parametrId);
try(DBConnection db = DBConnection.open()) { try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO(); ProductDAO productDAO = db.productDAO();
Product product = productDAO.findById(productId); Product product = productDAO.findById(productId);
// Forward to "wewnętrzne przekierowanie" obsługi zapytania do innego komponentu aplikacji.
// Tutaj "wyświetlamy" formularz edycji produktu.
// Gdy do obiektu request dodamy atrybut, to stanie się on dostępny dla kolejnych komponentów // Gdy do obiektu request dodamy atrybut, to stanie się on dostępny dla kolejnych komponentów
// naszej aplikacji, które będą obsługiwać to zapytanie. // naszej aplikacji, które będą obsługiwać to zapytanie.
// W tym przypadku skrypt JSP może odwoływać się do obiektu product. // W tym przypadku skrypt JSP może odwoływać się do obiektu product.
// Obiekt request jest też nośnikiem danych, podobnie jak sesja i servletContext. // Obiekt request jest też nośnikiem danych, podobnie jak sesja i servletContext.
// To działa jak Model w Spring MVC. // To działa jak Model w Spring MVC.
// Tylko jeśli znajdę produkt, tylko wtedy dodaję go do requestu i JSP wyświetli jego dane.
// Jeśli parametru productId nie było lub produktu nie znaleziono, to wyświetli się pusty formularz.
request.setAttribute("product", product); request.setAttribute("product", product);
RequestDispatcher dispatcher = request.getRequestDispatcher("product_form.jsp"); } catch (DBException | RecordNotFound e) {
dispatcher.forward(request, response);
} catch (DBException e) {
e.printStackTrace();
} catch (RecordNotFound e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
// Forward to "wewnętrzne przekierowanie" obsługi zapytania do innego komponentu aplikacji.
// Tutaj "wyświetlamy" formularz edycji produktu.
RequestDispatcher dispatcher = request.getRequestDispatcher("product_form.jsp");
if(dispatcher != null)
dispatcher.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// W tej wersji nie obsługujemy błędów - w razie błędu wyświetli się strona z wyjątkiem // W tej wersji nie obsługujemy błędów - w razie błędu wyświetli się strona z wyjątkiem
......
...@@ -62,5 +62,6 @@ do ${param.max_price} ...@@ -62,5 +62,6 @@ do ${param.max_price}
</div> </div>
</c:forEach> </c:forEach>
<div><a href="EditProduct">Dodaj nowy produkt</a></div>
</body> </body>
</html> </html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment