Portée des variables dans le cas particulier de création PDF
Bonjour !
je souhaite utiliser l'exellent outil "iText" pour éditer des pdf dans mon application javaEE.
grâce au livre "iText in action" et ses tutoriels, je m'initie petit à petit à cet outil.
MAIS :
Je n'arrive pas à récupérer le contenu de variables pour les intégrer dans mon pdf.
Encore une fois, un exemple vaut mieux qu'un long discours pour comprendre mon soucis.
Pour bien comprendre ma démarche :
1) dans mon fichier "web.xml" j'ai installé ceci :
Code:
1 2 3 4 5 6 7 8 9
| <servlet>
<description/>
<display-name>Billet</display-name>
<servlet-name>Billet</servlet-name>
<servlet-class>logic.IVenteCatalogManager</servlet-class>
</servlet><servlet-mapping>
<servlet-name>Billet</servlet-name>
<url-pattern>/ivente/e-billet.pdf</url-pattern>
</servlet-mapping> |
2) déclaration de mes variables et code de mon application (partiel) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
@ManagedBean
@SessionScoped
public class IVenteCatalogManager extends HttpServlet implements Serializable {
// pour le bouton demo
private String demoText;
String demoDisplay;
Boolean demo;
public String vendeur;
public String InBox(String entree) {
vendeur=entree;
return "";
}
public String OutBox() {
String render = vendeur;
return render;
}
.......
demoDisplay=" - Démonstration";
InBox(demoDisplay);
.......
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/pdf");
try {
// step 1
Document document = new Document();
// step 2
PdfWriter.getInstance(document, response.getOutputStream());
// step 3
document.open();
// stap 4
//String essai=routines.OutBox();
String essai=this.OutBox();
document.add(new Paragraph("rezaBus"));
document.add(new Paragraph(displayNomExploit));
document.add(new Paragraph(displayLibExploit));
document.add(new Paragraph(essai+" - "+demoDisplay));
document.add(new Paragraph(new Date().toString()));
// step 5
document.close();
} catch (DocumentException de) {
throw new IOException(de.getMessage());
}
} |
il s'avère que le résultat dans l'affichage de mon pdf est soit "" soit null pour les variables "essai" et "demoDisplay"
La seule manière d'arriver à un affichage du contenu des variables est de rajouter "static" en argument de déclaration de variable. Mais dans ce cas là avec "static", les différentes sessions des utilisateurs de mon applications se confondent, car les variables deviennent globales au niveau de l'application.
J'ai essayé d'autres arguments en suivant les multiples explications trouvé sur ce forum, mais cela ne change rien à cette situation.
Ce que je trouve curieux aussi, c'est que NetBeans ne signale pas d'erreur en écrivant le code, ce qui signifie que les variables sont bien reconnues, et pourtant, le contenu ne passe pas :(
Quelqu'un a-t-il une idée ?
Merci par avance !