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:
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);
   }
mentre il json lo genero con questa funzione in jquery:
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
            ...
        });
});
Il punto è che passando i dati in formato Json con ajax non so come (o se sia possibile) aggiungere l'attributo action alla request.
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