splittik (Normal User)
Rookie
Messaggi: 27
Iscritto: 25/04/2012
|
Ciao a tutti.
Ho una jsp che genera una tabella in cui l'ultima cella è un bottone che serve per raccogliere i dati della riga, passare i dati alla servel, la quale genera un document che viene scaricato in locale come pdf.
Alla pressione del bottone vengono mandati e processati i dati, ma il download non parte. Avevo implementato una versione in cui ogni riga della tabella era un form tuttavia devo usare delle datatable e quindi il mio primo approccio funzionava ma era sbagliato.
Nei log del server non ci sono errori ...non so cosa fare
ListAutist.size è un ArrayList con il risultato di una query
Codice sorgente - presumibilmente Java |
for (int i = 0; i < ListAutist.size(); i++) { beanA = (BeanAssenza) ListAutist.get(i); out.println("<tr role='row' class='odd'><td class='sorting_1' id='Autista'>" + beanA.getAutista() + "</td>"); out.println("<td>" + beanA.getDa_ora() + "</td>"); out.println("<td>" + beanA.getDa_giorno() + "</td>"); out.println("<td>" + beanA.getA_ora() + "</td>"); out.println("<td>" + beanA.getA_giorno() + "</td>"); out.println("<td>" + beanA.getTipo_assenza() + "</td>"); out.println("<td>" + beanA.getData_dichiarazione() + "</td>"); out.println("<input type='hidden' name='array' value=" + nome + ">"); out.println("<input type='hidden' name='array' value=" + beanA.getDa_ora() + ">"); out.println("<input type='hidden' name='array' value=" + beanA.getDa_giorno() + ">"); out.println("<input type='hidden' name='array' value=" + beanA.getA_ora() + ">"); out.println("<input type='hidden' name='array' value=" + beanA.getA_giorno() + ">"); out.println("<input type='hidden' name='array' value=" + beanA.getTipo_assenza() + ">"); out.println("<input type='hidden' name='array' value=" + beanA.getData_dichiarazione() + ">"); int index=i+1; out.println("<td><a href='javascript: submitform("+index+");'><i class='fa fa-download' aria-hidden='true' ></i></a></td>");
|
codice js
Codice sorgente - presumibilmente Delphi |
function submitform(i) { $("table[id^='table']").DataTable().destroy(); var oTable = document.getElementById("tableAss"); var oCells = oTable.rows.item(i).cells; var cellLength = oCells.length; var Nome = oCells.item(0).innerHTML; var Da_ora = oCells.item(1).innerHTML; var A_giorno = oCells.item(2).innerHTML; var A_ora = oCells.item(3).innerHTML; var Da_giorno = oCells.item(4).innerHTML; var Tipo_assenza = oCells.item(5).innerHTML; var Data_dichiarazione = oCells.item(6).innerHTML; var myData = { "myData": { "Nome": Nome, "Da_ora": Da_ora, "A_giorno": A_giorno, "A_ora": A_ora, "Da_giorno": Da_giorno, "Tipo": Tipo_assenza, "Data_dichiarazione": Data_dichiarazione } }; $.ajax({ url: "http://localhost:8080/FastNew/ServletDownloadAssenze", type: "get", data: { jsonData: JSON.stringify(myData) }, cache: false, dataType: "json" }); $("table[id^='table']").DataTable(); } $("table[id^='table']").DataTable();
|
codice della servlet
Codice sorgente - presumibilmente Java |
protected void doGet(HttpServletRequest request, HttpServletResponse response) try { processRequest(request, response); Logger.getLogger(ServletDownloadAssenze.class.getName()).log(Level.SEVERE, null, ex); Logger.getLogger(ServletDownloadAssenze.class.getName()).log(Level.SEVERE, null, ex); } catch (JSONException ex) { Logger.getLogger(ServletDownloadAssenze.class.getName()).log(Level.SEVERE, null, ex); } } response.setContentType("text/html;charset=UTF-8"); JSONObject newObj = new JSONObject(); ; try { // parsing del Json } //chiamata al metodo per generazione e download pdf service(request, response, values); } catch (JSONException e) { e.printStackTrace(); } } try { PdfWriter.getInstance(document, baos); //generazione del document document.close(); response.setHeader("Expires", "0"); String fileName = beanAutista. getNome_Completo() + " " + values [5] + " " + values [2] + ".pdf"; response.setHeader("Content-disposition", "attachment;filename=" + fileName); response.setContentType("application/pdf"); response.setContentLength(baos.size()); baos.writeTo(os); os.flush(); os.close(); } catch (DocumentException e) { }
|
|