Ciao a tutti,
so che in questa sezione si parla di java ma ho un problema che combina jquery e java. Spero dunque che sia la sezione più appropriata. In caso di problemi chiudete pure.
In una web app che sto scrivendo, ho una pagina con degli articoli da vendere; ho pensato di creare un carrello con jquery in cui vi sono nome articolo, quantità e prezzo (tabella) degli gli articoli scelti.
Dato che il carrello non è una form ma una semplice tabella ho pensato di usare ajax per inviare l'acquisto al server in formato Json.
Il problema è che ogni richiesta deve passare dalla servlet che fa da front controller e che smista le richieste alle oppurtune servlet di servizio in base a un attributo action che normalmente si trova nella request.
Es del front controller:
mentre il json lo genero con questa funzione in jquery:codice:protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); String action = request.getParameter("action"); if(action == null){ action = "index"; } else if (session == null){ response.sendRedirect("expiredSession.jsp");//esempio } //in realtà non ci sono i seguenti if else ma rendono l'idea di come funzioni il mio front controller else if(action.equals("login")){ //forward su ServletLogin }else if (...){ // forward su Servlet... } ... //request.getRequestDispatcher(servicesList.getProperty(action)).forward(request,response); }
Il punto è che passando i dati in formato Json con ajax non so come (o se sia possibile) aggiungere l'attributo action alla request.codice:$(document).on("submit", function (e){ e.preventDefault(); var jsonObj = []; $("table#carrello tr[class=pizza]").each(function(){ var nome = $(this).find(".nome").text(); var quantita = $(this).next().find(".quantita").text(); var item = {}; item ["nome"] = nome; item ["quantita"] = quantita; jsonObj.push(item); }); var jsonString = JSON.stringify(jsonObj); $.ajax({ type: "POST", url:"../ServletController", data: jsonString ... }); });
Volendo potrei aggiungere l'action al json, cambiare il front controller e vedere se trovo del json a ogni richiesta,e nel caso, parsarlo e poi passarlo alla servlet di destinazione, solo che preferirei che il front controller si occupasse solo di smistare le richieste.
Sapreste darmi qualche consiglio su come procedere?
Grazie![]()

Rispondi quotando
