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

NetBeans Java Discussion :

[Visual Web] Creation "dynamique" de composants d'une page JSF


Sujet :

NetBeans Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 29
    Points : 29
    Points
    29
    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é
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
                            <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 29
    Points : 29
    Points
    29
    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
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 34
    Points : 30
    Points
    30
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/04/2007, 19h13
  2. [WebForms]Comment générer dynamiquement tout ou partie d'une page html
    Par skywaukers dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 02/01/2007, 11h42
  3. Modifier dynamiquement TOUS les URL d'une page
    Par Torpedox dans le forum Langage
    Réponses: 2
    Dernier message: 06/04/2006, 05h21

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