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

Struts 1 Java Discussion :

Récupérer un numéro de séquence


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Par défaut Récupérer un numéro de séquence
    Bonjour à tous, passé un bon week-end ?

    Pas de chance je viens vous embêter avec du code. Enfin bon, vous êtes surement plus malins que moi donc ça ne devrait pas vous poser beaucoup de problèmes .

    Voila le problème : j'ai une JSP et un tableau (voir ci-dessous)

    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
    <h2>Liste des composants ajoutés</h2>
    
    <table class="tableau_affichage" align="center">
    
                    <tr>
                      <th>Numéro</th>
                     <th>Hash-code</th>
                     <th width="210">Nom</th>
                     <th>Version NSA</th>
                     <th>Compilation</th>
                     <th></th>
                  </tr>
    		<tr>
    
         <tbody>
      <logic:notEmpty name="tableauComposantsActionForm" property="composantsListCollection">
      <logic:iterate id="panierComposants" name="tableauComposantsActionForm" property="composantsListCollection" >
      <logic:present name="panierComposants" >
    
                <tr>
                     <td><bean:write name="panierComposants" property="numero" /></td>
                     <td><bean:write name="panierComposants" property="hashCode" /></td>
                     <td><bean:write name="panierComposants" property="nomLibrairie" /></td>
                     <td><bean:write name="panierComposants" property="versionNsa" /></td>
                     <td><bean:write name="panierComposants" property="codeBatch" /></td>
                     <td><input type="image" src="/LivApp/Images/del.png" onclick="javascript:efface()" alt="Supprimer"/></td>
                </tr>
    
      </logic:present>
      </logic:iterate>
      </logic:notEmpty>
         </tbody>
       </tr>
    </table>
    Ce tableau me permet de récupérer une liste de composants à partir d'un formulaire. Jusque là tout fonctionne ; le seul hic! est que le numéro (en gras) est généré à partir d'une séquence dans un EJB.

    Cela me pose problème étant donné que le tableau me retourne null. Je ne comprend pas pourquoi, puisque que la primary key est le numéro et qu'il n'est pas null (vérifié).

    De ce fait, à la place du numéro, j'ai un champ vide. Quelqu'un aurait-il une petite idée de la solution ?

    Merci d'avance et joyeux lundi ...

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Difficile de répondre sans le code du formulaire et EJB...
    Quand tu dis "vérifié", tu entends quoi, en mode débug avant d'envoyer à la page ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Par défaut
    Arf désolé, je file jamais assez de code.

    Quand je dis vérifié c'est que dans la base de données je peux accéder aux numéros (SQL*Plus), et de toute manière s'ils étaient null, en tant que primary key je ne pourrai pas les insérer. C'est uniquement quand je les récupèrent que je n'obtiens rien.

    Voici le code du formulaire. La collection sur laquelle j'itère est en gras.

    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
    public class ComposantsActionForm
        extends ActionForm {
    
       private String analyseSql;
       private String basesConcernees;
       private Integer codeBatch;
       private Integer codeLivraison;
       private Integer codeReport;
       private Integer codeType;
       private String composantsImpactes;
       private String consignesIntegration;
       private String contraintes;
       private Date dateExecution;
       private Date datePremierTraitement;
       private String definitionObjectif;
       private String descriptionTraitement;
       private String hashCode;
       private String identification;
       private String impactInfocentre;
       private String impactsApplicatifs;
       private String impactsSysteme;
       private String lienRessources;
       private String lienSpecTech;
       private String natureTraitement;
       private String nomFichiersIni;
       private String nomLibrairie;
       private String nomScript;
       private Integer numeroLibrairie;
       private String periodicite;
       private String procedureIncident;
       private String tempsPrevu;
       private String tempsReelConstate;
       private String versionNsa;
       private String versionwls;
       private String volumeTraite;
       private Collection batchListCollection;
       private Collection reportListCollection;
       private Collection composantsListCollection;
    
    [...]
    
     public Collection getcomposantsListCollection() {
       return composantsListCollection;
     }
    
      public void setcomposantsListCollection(Collection composantsListCollection) {
       this.composantsListCollection = composantsListCollection;
     }
    Le code de l'EJB :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    <entity>
          <display-name>Composant</display-name>
          <ejb-name>Composant</ejb-name>
          <local-home>gest_livr_appli.EJB.Entity.ComposantHome</local-home>
          <local>gest_livr_appli.EJB.Entity.Composant</local>
          <ejb-class>gest_livr_appli.EJB.Entity.ComposantBean</ejb-class>
          <persistence-type>Container</persistence-type>
          <prim-key-class>java.lang.Integer</prim-key-class>
          <reentrant>False</reentrant>
          <cmp-version>2.x</cmp-version>
          <abstract-schema-name>Composant</abstract-schema-name>
          <cmp-field>
            <field-name>analyseSql</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>basesConcernees</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>composantsImpactes</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>consignesIntegration</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>contraintes</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>dateExecution</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>definitionObjectif</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>descriptionTraitement</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>hashCode</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>identification</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>impactInfocentre</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>impactsApplicatifs</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>impactsSysteme</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>lienRessources</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>lienSpecTech</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>natureTraitement</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>nomFichiersIni</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>nomLibrairie</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>nomScript</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>numero</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>periodicite</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>procedureIncident</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>tempsPrevu</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>tempsReelConstate</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>versionNsa</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>versionwls</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>volumeTraite</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>datePremierTraitement</field-name>
          </cmp-field>
          <primkey-field>numero</primkey-field>
        </entity>
     
    [...]
     
     <session>
          <display-name>ComposantSessionFacade</display-name>
          <ejb-name>ComposantSessionFacade</ejb-name>
          <home>gest_livr_appli.EJB.Session.ComposantSessionFacadeHome</home>
          <remote>gest_livr_appli.EJB.Session.ComposantSessionFacade</remote>
          <ejb-class>gest_livr_appli.EJB.Session.ComposantSessionFacadeBean</ejb-class>
          <session-type>Stateful</session-type>
          <transaction-type>Container</transaction-type>
          <ejb-local-ref>
            <ejb-ref-name>ejb/composant</ejb-ref-name>
            <ejb-ref-type>Entity</ejb-ref-type>
            <local-home>gest_livr_appli.EJB.Entity.ComposantHome</local-home>
            <local>gest_livr_appli.EJB.Entity.Composant</local>
            <ejb-link>Composant</ejb-link>
          </ejb-local-ref>
        </session>
    S'ils vous faut plus, call me ...

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    C'est bien ce qu'il me semblait, à mon avis, ton numéro est généré lors de la validation de l'enreg. et pas avant (d'où ton NULL)... et là, à moins de modifier l'EJB, tu l'as dans le baba...
    Je suppose que tu ajoutes des POJO dans une collection et que tu valides le tout par une action qui persiste le tout en DB (après, tu devrais l'avoir ton numéro), c'est bien ça ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Par défaut
    Je ne sais pas si j'utilise des POJO.

    L'Action qui insère mon composant récupère les champs un par un du form et l'insère dans une Dto, qui ensuite après être passée par le Delegate, arrive à la Session qui reprend les champs un par un du Dto pour les mettre dans l'entité.

    En fait, pour récupérer mes Objets, j'ai un Vecteur static dans la Session, dans lequel j'ajoute ou supprime des Dto. A partir de ce Vecteur, je retourne une collection de Dto. Ensuite cette collection je l'insère dans le form, et j'itère dessus dans ma JSP.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    POJO = Plain Old Java Object, un object basic avec propriétés et getter/setter, très certainement comme tes DTO (ah, le vocabulaire , le jour où on standardisera...)
    Bref, si tu regardes dans ta collection, je pense que tes nouvelles entrées n'ont pas encore de numéro, et qu'elles n'existent pas encore dans la DB.
    Rien ne t'empêche de mettre dans ce cas un "attente validation" à l'affichage de ta liste en lieu et place du numéro (ça peut être une information supplémentaire pour l'utilisateur) ou alors, valider à chaque ajout...
    A toi de voir...(moi je préfère la 1ère manière)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Récupérer le numéro de téléphone entrant
    Par louisss dans le forum Access
    Réponses: 23
    Dernier message: 26/07/2023, 18h21
  2. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  3. [PDF - FOP - XSL] Récupérer le numéro d'une page
    Par caro. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/02/2005, 11h35
  4. Comment récupérer le numéro de la semaine ?
    Par claude dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2004, 15h06
  5. [xml] Récupérer le numéro de la ligne d'erreur d'un fichier
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/03/2004, 19h09

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