Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [JAVA]PDF in Java

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    [JAVA]PDF in Java

    Ciao a tutti!

    Devo realizzare un pdf in Java. Il pdf è una lettera da inviare a n destinatari. Una servlet recupera le informazioni dei destinatari da una JSP e richiama una classe che crea il pdf. La classe prevede l'inserimento fino a 4 destinatari e vorrei modificarla in modo da non avere un massimo di destinatari a cui inviare la lettera.

    Le informazioni dei destinatari sono gestite nel seguente modo:

    private String titoloDest1;
    private String descDest1;
    private String descAggDest1;
    private String ind1Dest1;
    private String ind2Dest1;
    private String infoDest1;

    private String titoloDest2;
    private String descDest2;
    private String descAggDest2;
    private String ind1Dest2;
    private String ind2Dest2;
    private String infoDest2;

    private String titoloDest3;
    private String descDest3;
    private String descAggDest3;
    private String ind1Dest3;
    private String ind2Dest3;
    private String infoDest3;

    private String titoloDest4;
    private String descDest4;
    private String descAggDest4;
    private String ind1Dest4;
    private String ind2Dest4;
    private String infoDest4;

    C'e un modo di mantenere la radice del nome dei campi (es. titoloDest, descDest, ind1Dest) e di impostare n destinatari nella servlet?

    Ad esempio ciò che faccio è:

    PdfUniversale pdf = new PdfUniversale();

    pdf.setTitoloDest1(req.getParameter("tit1"));
    pdf.setDescDest1(req.getParameter("des_medico1"));
    pdf.setInd1Dest1(req.getParameter("indi1_medico1") );
    pdf.setInd2Dest1(req.getParameter("indi1_medico_sp ec1"));

    Come posso fare per generalizzare?

    Grazie mille
    A vostra disposizione per maggiori delucidazioni

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    Precisazione

    Mi spiego meglio:

    ad esempio nella JSP scelgo un destinatario della lettera. Questo sarà diciamo il primo destinatario.

    Fatti i controlli per vedere se è valorizzato il checkbox del primo medico a cui inviare la lettera nella servlet ho:

    if (med1)
    {
    setInfoPrimoDestinatario(req);
    }


    dove il metodo setInfoPrimoDestinatario è il seguente:

    private void setInfoPrimoDestinatario(HttpServletRequest req)
    {
    PdfUniversale pdf = new PdfUniversale();

    pdf.setTitoloDest1(req.getParameter("tit0"));
    pdf.setDescDest1(req.getParameter("des_medico"));
    pdf.setInd1Dest1(req.getParameter("indi1_medico")) ;
    pdf.setInd2Dest1(req.getParameter("indi1_medico_sp ec"));
    String temp = new String("");
    if ("true".equals(req.getParameter("Racc_medico")) )
    temp+="Raccomandata A.R.\n";
    if (req.getParameter("Fax_medico").length()>0)
    {
    if (("true".equals(req.getParameter("Racc_medico")) ))
    temp+="Anticipata via fax: "+ req.getParameter("Fax_medico") +"\n";
    else
    temp+="Numero fax: " + req.getParameter("Fax_medico") +"\n";
    }
    if (req.getParameter("Racc_medico") != null && req.getParameter("CA_medico").length()>0)
    temp+="c.a.: "+ req.getParameter("CA_medico") +"\n";

    pdf.setInfoDest1(temp);

    }

    c'è secondo voi un modo di generalizzare questo metodo e renderlo utilizzabile per ogni destinatario della lettera in modo da poter inserire n destinatari e non ad esempio un max di 4?

    Ad esempio(un idea molto approssimativa, ma giusto per rendere l'idea) un ciclo
    for(int i = 0; i<dest.length; i++)
    {
    e qui la radice descDest uguale per tutti i destinatari, di cui scorro l'elenco
    }

    Grazie mille,
    cordiali saluti

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ci sono gli array apposta per questo:

    E' solo questione di sistemare il form con cui prendi i dati: per esempio

    codice:
    <form name="singolo" action="tuaaction.jsp" method="post">
      Nome: <input type="text" name="nome" /> Cognome: <input type="text" name="cognome" />
    
      <input type="submit" value="submit" name="submit" />
    </form>
    Crea un form con una sola coppia Nome/Cognome. Se però nominiamo i campi in questo modo (come fossero array)
    codice:
    <form name="singolo" action="tuaaction.jsp" method="post">
      Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
      Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
      Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
      Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
      Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
      Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
      Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
    ...
    ...
      <input type="submit" value="submit" name="submit" />
    </form>
    Avremo un form con N coppie di campi, ai quali accediamo con getParameterValues, il quale ci restituirà un array dei valori o null se i campi non sono stati compilati.

    Esempio completo
    codice:
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page - MultiField</title>
        </head>
        <body>
            <h2>Multifield Form</h2>
            <form name="mioform" action="multifield.jsp" method="post">
                Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
                Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
                Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
                Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
    
                <input type="submit" value="Submit" name="submit" />
            </form>
            <fieldset>
                <legend>Valori postati</legend>
                <%
                  try {
                  String[] nomi = request.getParameterValues("nome[]");
                  String[] cognomi = request.getParameterValues("cognome[]");
                  
                  for (int i = 0; i < nomi.length; i++) {
                      out.println("Nome: "+nomi[i]+" Cognome: "+cognomi[i]+"
    ");
                  }
                  }
                  catch (Exception e) {
                      out.println("Nessun dato valido");
                  }
                %>
            </fieldset>
        </body>
    </html>
    PS: non è un buon modo di gestire gli eventuali null/null ritornati, ma è solo per farti vedere l'utilizzo di getParameterValues. In una vera applicazione dovrai ben gestire tutte le eccezioni di compilazione di un form
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86
    Grazie del consiglio Andrea,
    sto ancora lavorando sul pdf ma intanto ho cambiato modo di procedere e sto riuscendo a inserire n destinatari.

    Cordiali saluti

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.