IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Récupérer un String contenu dans un Writer


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Par défaut Récupérer un String contenu dans un Writer
    Bonjour.
    Je souhaite utiliser Freemarker pour la génération d'email à partir de template, mais j'ai un problème.. voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public static void main(String[] args) throws IOException, TemplateException {
     
    		/* Create and adjust the configuration */
    		Configuration cfg = new Configuration();
    		System.out.println(new File("src/tpl").getAbsolutePath());
    		cfg.setDirectoryForTemplateLoading(new File("src/tpl"));
    		cfg.setObjectWrapper(new DefaultObjectWrapper());
     
    		/* Get or create a template */
    		Template temp = cfg.getTemplate("listToCSV.ftl");
     
    		/* Create a data model */
    		Map root = new HashMap();
    		List datas = new LinkedList();
    		root.put("datas", datas);
    		datas.add(new Personn("René", "Girault", 37));
    		datas.add(new Personn("Nicole", "Loin", 10));
    		datas.add(new Personn("JB", "Dece", 19));
     
    		/* Merge data model with template */
    		Writer out = new OutputStreamWriter(System.out);
    		temp.process(root, out);
    		out.flush();
    	}
    L'exemple est bien jolie mais comment récupéré le flux dans une chaine de caractère plutôt que de l'afficher dans la console eclipse

    Merci d'avance

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Avec un StringWriter à la place de ton OutputStreamWriter.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Par défaut
    Merci pour ta réponse, mais le constructeur équivalent n'existe pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Writer out = new StringWriter(System.out);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The constructor StringWriter(PrintStream) is undefined
    J'y connais rien en OutputStreamWriter, writer etc.. Comment dois-je m'y prendre ?

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Par défaut
    Pourquoi freemarker utilise System.out
    Pourquoi ne pas utiliser plutot un stringbuffer par exemple ?

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Par défaut
    Ayé, j'ai trouvé.

    Il faut remplacer la sortie standard System.out par un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OutputStream aa = new ByteArrayOutputStream();
    On récupère ensuite le template enrichi avec

    A bientôt !

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par aurelientp Voir le message
    Pourquoi freemarker utilise System.out
    Pourquoi ne pas utiliser plutot un stringbuffer par exemple ?
    C'est une question d'interface.

    Beaucoup de bibliothèques te proposeront d'écrire dans un Writer, mais bien peu te proposerons d'écrire dans un StringBuffer. Dans ces cas-là, tu peux leur donner un StringWriter (qui, en interne, utilise un StringBuffer de toute façon.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Par défaut
    Ok je comprends mieux
    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/12/2008, 12h12
  2. Réponses: 4
    Dernier message: 31/07/2008, 20h27
  3. Récupérer le chemin contenu dans une cellule
    Par Geprocor dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/06/2008, 15h32
  4. Récupérer les classes contenu dans un package
    Par guizzmo dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 10/07/2007, 12h08
  5. Réponses: 3
    Dernier message: 29/08/2006, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo