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

JSF Java Discussion :

JSF pour générer le contenu d'un courriel


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Billets dans le blog
    1
    Par défaut JSF pour générer le contenu d'un courriel
    Bonjour/bonsoir
    Je recherche un moyen en utilisant jsf, de générer le contenu d'un courriel en templatant avec jsf, j'ai trouvé une approche avec seam, mais qui il me semble n'est exécutable que dans un server d'application et pas sur tomcat par exemple.
    Existe-t-il une façon standard de générer du (x)html que je pourrais envoyer par le biais de l'api javamail.

    Merci d'avance pour les participation avenir au sujet.

    cordialement Khaled.Noordin

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu peux soit utiliser jakarta http client pour récupérer la page via une requete http. Soit appeler la servlet via un forward ou un include en lui passant un ResponseWrapper qui écrit dans un fichier / en mémoire plutot que sur la connexion réseau.

  3. #3
    Membre très actif
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Billets dans le blog
    1
    Par défaut
    Merci tchize_ pour la piste a suivre.
    Il semble que velocity soit dans mon cas une option plus simple à gérer, que d'utiliser le moteur de templating de jsf

    Cordialement Khaled.Noordin

  4. #4
    Membre très actif
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Billets dans le blog
    1
    Par défaut
    Dans le but de partager un bout de code voici la manière dont j'ai procédé, une classe qui rentre dans un processus de création d'un émail à partir d'un template velocity

    Code java : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    package basis.mail.service.template;
     
    import basis.mail.service.IMailActivationTemplate;
    import java.io.StringWriter;
    import java.util.Map;
    import java.util.Properties;
    import org.apache.velocity.VelocityContext;
    import org.apache.velocity.app.VelocityEngine;
    import org.apache.velocity.exception.MethodInvocationException;
    import org.apache.velocity.exception.ParseErrorException;
    import org.apache.velocity.exception.ResourceNotFoundException;
     
    public class MailTemplateVelocityHelper {
     
        private String content;
        private VelocityEngine engine;
        private VelocityContext context;
     
        public MailTemplateVelocityHelper(String template, Map<String, Object> map) {
            Properties p = new Properties();
            p.setProperty(
                    IMailActivationTemplate.VELOCITY_RESOURCE_LOADER_KEY,
                    IMailActivationTemplate.VELOCITY_RESOURCE_LOADER_VALUE);
            p.setProperty(
                    IMailActivationTemplate.VELOCITY_CLASS_RESOURCE_LOADER_CLASS_KEY,
                    IMailActivationTemplate.VELOCITY_CLASS_RESOURCE_LOADER_CLASS_VALUE);
            engine = new VelocityEngine(p);
            StringWriter w = new StringWriter();
            context = new VelocityContext(map);
            try {
                engine.mergeTemplate(
                        template,
                        IMailActivationTemplate.ENCODING_DEFAULT,
                        context,
                        w);
                content = w.toString();
            } catch (ResourceNotFoundException |
                    ParseErrorException |
                    MethodInvocationException e) {
                System.out.println("Problem merging template : " + e);
            }
        }
     
        @Override
        public String toString() {
            return content;
        }
    }


    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package basis.mail.service;
     
     
    public interface IMailActivationTemplate extends IMailTemplate {
     
        public static final String KEY_FIRST_NAME = "firstName";
        public static final String KEY_LAST_NAME = "lastName";
        public static final String KEY_LOGIN = "login";
        public static final String EMAIL_VALUE_TO = "emailValue";
        public static final String KEY_PENDING_DURATION_HOURS = "pending_duration_hours";
        public static final String KEY_ACTIVATION_LINK = "activation_link";
        public static final String TEMPLATE_ACTIVATION_DEFAULT = "/mail/templates/mail_activation.vm";
        public static final String TEMPLATE_ACTIVATION_FR = "/mail/templates/mail_activation_fr.vm";
    }

    Code xhtml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <title>activation mail</title>
        </head>
        <body>
            <div><h4>Hello $firstName $lastName</h4></div>
            <div><h5>we are happy to count you among us,<br/>
                    to achieve your registration please visit the link below<br/>
                    before the next $pending_duration_hours hours :<br/>
                    $activation_link
                </h5></div>
            <div><h5>email : $emailValue<br/>
                    login : $login</h5> 
            </div>
            <div><h4>Best regards</h4></div>
        </body>
    </html>

    Ce n'est pas utilisable d’emblée mais l'idée est la et chez moi ça marche et d'autre classes autour viennent se greffer pour que cela soit complètement fonctionnel, mais cela dépasse le sujet .

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

Discussions similaires

  1. [Reseau]FTPClient pour afficher le contenu d'un fichier
    Par boxsters dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 21/06/2006, 11h12
  2. Librairies gratuites pour générer du PDF
    Par Noxexplorer dans le forum ASP
    Réponses: 2
    Dernier message: 02/05/2005, 20h18
  3. Quel outil UML (industriel) pour générer du code C# ?
    Par matsri2003 dans le forum Outils
    Réponses: 3
    Dernier message: 17/01/2005, 13h45
  4. [Plugin]Plugin JSF pour eclipe
    Par yanis97 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/07/2004, 14h50

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