Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    juillet 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : juillet 2006
    Messages : 29
    Points : 13
    Points
    13

    Par défaut Creation "dynamique" de composants d'une page JSF

    Bonjour,

    je souhaiterais developper une page JSF (j'utilise VWP et Netbeans 5.5) dont le nombre de composants n'est pas determiné à l'avance.

    Pour m'expliquer un peu, voici une illustration de ce que je cherche à faire :
    une page ou un utilisateur pourrait introduire un ou plusieurs noms (grace a un TextField). Lors du premier appel à la page, celle-ci contiendrait un seul champ texte ("introduire le nom 1") et un bouton ("ajouter un nom") dont l'action serait de recharger la meme page mais avec un TextField supplementaire ("introduire le nom 2") et toujours la possibilité d'ajouter un champ texte supplémentaire...

    Bref, avec mes (maigres) connaissances theoriques du fonctionnement de JSF, je me retrouve un peu bloqué.
    D'un point de vue de la classe java associée a la page, le concept ne me pose pas de problemes : on peut imaginer un Set de composants TextField ou d'ailleurs n'importe quelle autre structure de données dynamiques (vector, list ...) . Ensuite j'imagine qu'il faudrait rajouter les composants à l'arbre des composants meme si je vois pas encore trop comment ni a quel moment le faire.

    Par contre, du point de vue de la page JSP je me retrouve en panne d'idées ... y-a-t-il un tag permettant de definir un "ensemble" de composants ?

    Sinon, l'idée principale d'une page JSF contenant un nombre indéfini de composants est-elle réalisable ou suis-je à coté de la plaque ??
    Et a tout hasard, le VWP propose-t-il des outils permettant de faire cela ?


    Merci d'avance

  2. #2
    Expert Confirmé Sénior
    Avatar de Valère
    Profil pro
    Inscrit en
    août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : août 2005
    Messages : 1 334
    Points : 4 275
    Points
    4 275

    Par défaut

    Je te rassure, c'est tout à fait faisable. Il te suffit d'avoir un composant de type layout sur ta page, et depuis le backing bean tu lui rajoutes des éléments.

    Dans ton JSP, par exemple un gridPanel que tu fixes à 1 colonne:
    Code :
                            <h:panelGrid binding="#{Page1.gridPanel1}" columns="1" id="gridPanel1" style="position: absolute; left: 48px; top: 144px"/>
    Dans le backing bean, pour lui rajoutter un textfield (mais ça pourrait être n'importe que composant):

    Code :
    1
    2
    3
            TextField tf = new TextField();
            tf.setText("Saisissez un prénom");
            gridPanel1.getChildren().add(tf);
    Valère
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  3. #3
    Candidat au titre de Membre du Club
    Inscrit en
    juillet 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : juillet 2006
    Messages : 29
    Points : 13
    Points
    13

    Par défaut

    Merci Valère,
    la technique fonctionne très bien et c'est même plus simple que ce que j'imaginais au final!!!

  4. #4
    Futur Membre du Club
    Inscrit en
    juin 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : juin 2003
    Messages : 34
    Points : 15
    Points
    15

    Par défaut

    Cette solution marche t-elle sous Eclipse+RichFaces ?
    Si je comprend bien, l'exemple de code de Valère,
    Page1 est la classe Backing Bean,
    gridPanel1 est une variable (avec getGridPanel1 et setGridPanel1 comme accesseurs)
    le code
    Code :
    1
    2
    3
    4
     
    TextField tf = new TextField();
    tf.setText("Saisissez un prénom");
    gridPanel1.getChildren().add(tf);
    fait partie d'une méthode de la classe Page1.

    Est-ce bien ça ?

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •