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érer automatiquement des ID pour inputText


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut Générer automatiquement des ID pour inputText
    Bonjour,

    J'aimerai generer automatiquement des inputText dans un formulaire en fonction du resultat de ma requete.
    J'utilise un dataTable pour afficher le resultat avec les inputText. J'ai essaye d'assigner comme valeur pour l'attribut id de l inputText une EL generer par mon bean, mais j'obtient une erreur me disant que l'attribut id ne peut recevoir de EL.
    Est ce que quelqu un a une idee pour generer ces id pour me permettre de recuperer les valeurs de mes inputText apres?

    MErci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Il ne veut pas d'EL je trouve que c'est même mieux . Quentends tu par récuperer les valeurs? côté Javascript tu veux dire? ou côté JSF ?

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    En effet, quel traitement souhaites-tu faire avec ces input texts ?
    Si le traitement doit être fait en local - en Javascript - alors il te faudra effectivement connaître leurs ID (quoiqu'on puisse ruser en utilisant autre chose que l'ID).
    Si le traitement est à faire côté JSF, pas besoin des IDs, tu peux retrouver leurs valeurs dans les beans directement.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    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 ne peux pas prendre un EL pour les ID car les ID sont fixe en JSF. Maintenant, si t'en a besoin coté Javascript, tu peux raisonnablement facilement le connaitre. L'id javascript de ton input text sera <id de datatable>:<row number>:<id de input text>

  5. #5
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    Merci pour vos reponses.
    Je desire recuperer les valeurs que l'utilisateur aura saisi dans les inputText que j'aurai genere et les traiter dans mon bean. Mais pour cela j'ai besoin des ids de chaque inputText ?

  6. #6
    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
    c'est jsf qui se charge de transférer les données des inputtext vers le bean via le value=, t'as rien à faire de ce coté là. Si t'as besoin de ces valeur, va les chercher dans le bean directement, comme ca t'es indépendant de l'interface!

  7. #7
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    Desolee mais j ai un peu de mal a comprendre.
    Losrque je genere mes inputTExt je definis ma variable dans l'attribut value et j aurai la possibilite de recuperer les differentes valeurs que ma variable va prendre dans les differents inputText ? (Les inputText font tous parti du meme formulaire).

    Pourrais tu m'eclairer un peu si tu as le temps. Je continue a chercher de mon cote.

    Merci

  8. #8
    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
    ton inputtext a la form

    <h:inputText value="#{variable.propriete}/>
    Lors de ton action (puisque je suppose qu'on en est là) la valeur sera présente dans #{variable.propriete}, c'est le b-a-ba de JSF. Sinon montre nous ton code si tu comprend pas, on essaiera de te guider... Mais oui, tous les input son stocké dans les bean pointés par les value, c'est quand meme pour ca qu'on utilise jsf :s

  9. #9
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    Desollee je me suis mal exprimee. Mon incomprehension reside dans le fait d'attribuer a une meme propriete de mon bean des valeurs differentes que je vais faire passer dans une seule action. Car mes inputText sont generes dans mon dataTable, ils dependent du resultat de ma requete.

  10. #10
    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
    montre ton code de la datatable, dois y avoir un truc louche dedans si t'arrive pas a récupérer les valeur. Typiquement, on fait comme ca


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:dataTable value="#{unBean.uneCollection}" var="element"/>
    ....
      <h:inputText value="#{element.unePropriete}"/>
    ....
    </h:dataTable>
    Ensuite coté de ton bean, dans l'action, pour récupérer les valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class MonBean {
       List<Truc> uneCollection;
       // + getters et setter ;)
       public String monAction(){
          uneCollection.get(0).getUnePropriete(); // accès à "unePropriete" de la premiere ligne
          uneCollection.get(1).getUnePropriete(); // accès à "unePropriete" de la deuxième ligne
          // etc
       }
    }
    Je résume fort, mais comme tu vois, pas besoin des IDs, 99.9% du temps, t'aura pas besoin des IDs coté serveur!

  11. #11
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    En fait j'ai trouve une partie de la solution en fouillant dans les posts du forum.
    C'est toi Tchize d'aiilleurs qui avait repondu. (recuperer-valeurs-lignes-datatable-apres-modification)
    C'est exactement ce que j'essaie de faire mais ca ne marche toujours pas.

    Donc en changeant le scope de mon bean en session je conserve ma liste normalement. Mais je n'arrive toujours pas a acceder aux elements de la liste.

    Je genere un form1 contenant mon datatable .
    Le datatable affiche list1, generee par bean1.getList1() et il contient un champs inputText dans lequel l'Utilisateur doit saisir une donnee pour une des proprietes de ma liste. Ensuite form1 est renvoye a bean1.treatmentList1 pour traiter les donnees et les inserer dans ma base de donnees. Mais ma liste est vide. Je ne peux pas acceder a ma propriete meme en utilisant list1.get(i).getPropriete().

    JE pense avoir un gros probleme au niveau de l'implementation de cette fonctionnalite dans mon application.
    J'espere que quelqu'un comprendra mon probleme et pourra m'aider. Je suis completement perdue, j'ai l'impression de tourner en rond.
    Merci d'avance.

  12. #12
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    Voici le code de mon datatable:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
     <h:dataTable id="inf-map" value="#{infHyb.list1}" 
     var="item" bgcolor="#F1F1F1" 
    border="5" cellpadding="5" cellspacing="3"  width="50%"
    frame="hsides" rules="all" >
        <h:column>
            <f:facet name="header">
                <h:outputText value="Position" />
            </f:facet> 
            <h:outputText value="#{item.pos1}" ></h:outputText><br />
            <h:outputText value="#{item.pos2}" ></h:outputText><br />
            <h:outputText value="#{item.pos3}" ></h:outputText><br />
            <h:outputText value="#{item.pos4}" ></h:outputText><br />
        </h:column>
        <h:column>
            <f:facet name="header">
                <h:outputText value="NDA" />
            </f:facet> 
            <h:outputText value="#{item.nda1}" ></h:outputText><br />
            <h:outputText value="#{item.nda2}" ></h:outputText><br />
            <h:outputText value="#{item.nda3}" ></h:outputText><br />
            <h:outputText value="#{item.nda4}" ></h:outputText><br />
        </h:column>
        <h:column>
            <f:facet name="header">
                <h:outputText value="Indi" />
            </f:facet> 
            <h:outputText value="#{item.indi1}" ></h:outputText><br />
            <h:outputText value="#{item.indi2}" ></h:outputText><br />
            <h:outputText value="#{item.indi3}" ></h:outputText><br />
            <h:outputText value="#{item.indi4}" ></h:outputText><br />
        </h:column>
        <h:column>
            <f:facet name="header">
                <h:outputText value="Local" />
            </f:facet> 
                 <h:inputText  value="#{item.localInput}" 
                 title="#{inp.input_local}"></h:inputText>
        </h:column>
     
    </h:dataTable>
    <p>
      <h:commandButton action="#{infHyb.localMapping}" 
        value="mapping">
        <f:param name="typeId" value="#{infHyb.oneType}" ></f:param>
        <f:param name="plateId" value="#{infHyb.oneChoice}"></f:param>
       </h:commandButton>
    </p>

  13. #13
    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
    si bean1.getList1() est vide, c'est là ton problème. Ton datatable va pas remplir la list. Ce qu'il va faire à la soumission, c'est prendre ta liste, et pour chaque élément de ta liste, le mettre à jour avec la valeur soumise. Autrement dit, tu donne une liste vide lors de la soumission à datatable, il n'a donc rien à faire.


    la liste doit absolument être préservée entre les requêtes lorsque l'on travaille avec des datatable en édition. Une solution c'est de mettre bean1 en session scope.

  14. #14
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    Bonjour,

    J'arrive a recuperer ma liste updatee avec les nouvelles valeurs modifiées par l'utilisateur dans mon datatable editable. Je verifie si ma liste existe deja ou pas dans mon getter, grace au checking:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     if (FacesContext.getCurrentInstance().getRenderResponse()) { 
    ...
    Si elle existe il la recupere si elle n'existe pas il la crée.
    Et j'utilise le scope session.

    merci encore pour votre aide.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/08/2012, 11h19
  2. Générer automatiquement des fichiers Word
    Par laurent35000 dans le forum Access
    Réponses: 3
    Dernier message: 13/06/2008, 17h33
  3. [VBA-E] Hauteur automatique des lignes pour cellules fusionnées
    Par Couettecouette dans le forum Contribuez
    Réponses: 0
    Dernier message: 18/10/2007, 15h45
  4. Hauteur automatique des lignes pour cellules fusionnées
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 18/10/2007, 11h02
  5. Générer automatiquement des fiches HTML
    Par defdef dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 11/05/2007, 14h04

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