Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Nikopol
    Registrato dal
    Jan 2011
    Messaggi
    120

    [Java+JQuery] Invio di dati in formato Json a un front controller

    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
    La Guida Galattica è infallibile.
    È la realtà, spesso, ad essere inesatta.

  2. #2
    Utente di HTML.it L'avatar di Nikopol
    Registrato dal
    Jan 2011
    Messaggi
    120
    Ho risolto passando due oggetti insieme in questo modo:
    codice:
    data: {"action":"prenotazione","datiPrenotazioni": jsonString}
    Grazie comunque.
    La Guida Galattica è infallibile.
    È la realtà, spesso, ad essere inesatta.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.