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 :

Génération des pages JSF dynamiquement


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Par défaut Génération des pages JSF dynamiquement
    Bonjour,
    Dans mon application je suis obligé que le rendu des pages jsf soit dynamique càd la structure de la page les champs ... sont dans une base de donnée et il faut les récupérer puis construire les IHM , quelqu'un à une idée comment faire ça ?
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Par défaut
    Bonjour,

    je vais essayer de te donner qqs pistes. Ca ne couvre pas l'ensemble des possibilités, mais tu auras déjà qqs armes.

    Une première piste : JSF passe par une série de phases AVANT affichage comprenant entre l'autres l'intréprétation de toutes les EL (expressions de langages) du type #{monBean.uneValeur}. Tu peux donc tenter de créer ta structure de page de manière conditionnelle en utilisant la propriété "rendered" de tes composants afin de déterminer la structure de ta page en fonction des données que tu auras récupérées de la base.
    Ca ressemble à ça côté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value=#{monBean.text} rendered=#{monBean.textMustBeRendered} />
    et côté serveur :
    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
     
    private String text; // + public getters/setters
    private Boolean textMustBeRendered; // + public getters/setters
     
         /**
         * method called at the begin
         */
        @PostConstruct
        public final void init() {
     
            // gets text value From DB
            setText(textService.getText());
     
            // should component displaying 'text' should be rendered?
            textMustBeRendered= (getText() != null);
     
     
    };
    Tu peux aussi, plutôt que d'écrire les structures à l'avance, les gérer avec un jQuery/script : puisque les ELs sont évaluées avant le rendu, elles auront la bonne valeur au moment où le script sera exécutées. Tu pourras donc construire ta page dynamiquement en fonction de ces valeurs.
    Par contre, là, je ne t'aiderai pas bcp sur le code : je ne suis pas expert en scripts...
    disons que ça ressemblerait à qqchose comme ça ( le code ci-dessous n'a rien de crédible : c'est juste un exemple de forme)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      <script
        type="text/javascript"
        >
     var $j = jQuery.noConflict();
     
     $("#MonFormulaire").addClass("visible");
     if(text != null){
      $("#MonFormulaire").append("<p id='monText' value>#{monBean.text}</div>");
    /* etc ... */
      <script
    Toujours en utilisant les ELs, tu pourrais utiliser des composants de type <c:name> (composants du "core" jsf) qui te permettraient de construire ta page de façon conditionnelle là aussi.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
            <c:if test="#{!monBean.text ne null}">
              <li class="text"><h:outputText value="#{monBean.text}" />
              </li>
            </c:if>
            <c:forEach var="operation" items="#{monBean.operationsList}">
                            <c:if test="#{operation.id == operation.bank.id}">
                                  <span class="name"><h:outputText value="#{operation.montant}" /> </span>
                            </c:if>
                            <c:if test="#{operation.id == operation.surgery.id}">
                                  <span class="name"><h:outputText value="#{operation.type}" /> </span>
                            </c:if>
            </c:forEach>
    Voilà... ça te fait déjà qqs pistes.
    Il y a d'autres solutions (tu peux même créer ta page quasi entièrement depuis le bean)... mais tu as déjà qqs armes pour commencer.

    En espérant avoir été clair!

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Par défaut Réponse
    Merci Roger_Rabbit , je vais essayer de suivre cette piste

Discussions similaires

  1. Réponses: 12
    Dernier message: 30/04/2009, 17h11
  2. Réponses: 3
    Dernier message: 25/11/2008, 15h27
  3. page jsf dynamique
    Par pacomou dans le forum JSF
    Réponses: 8
    Dernier message: 21/04/2008, 17h02
  4. Génération des pages HTML à partir d'un programme.
    Par marcandre dans le forum Langage
    Réponses: 6
    Dernier message: 26/03/2007, 17h13
  5. Comment générer des pages HTML dynamiques ?
    Par Devil666 dans le forum Java EE
    Réponses: 2
    Dernier message: 15/04/2005, 10h56

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