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 :

Conversion automatique non voulu


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 549
    Points : 704
    Points
    704
    Par défaut Conversion automatique non voulu
    salut

    dans un form j'ai un objet de type Float

    j'utilise un validator

    je me suis rendu compte à la validation que si l'utilisateur n'a pas mis de valeur... 0.0 lui est affecté

    c'est struts qui fait ça automatiquement?
    j'aimerais plutôt avoir null

    une idée?

    merci

  2. #2
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    tu veux dire de type

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Tu peux mettre ton attribut de ton XxxForm en String et dans ton XxxAction tu convertie comme tu veux
    A++

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 549
    Points : 704
    Points
    704
    Par défaut
    j'ai mis le type en string au lieu de float... et dans le validator je fais la validation en float...

    ça fonctionne bien

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Tu poura mettre une note sur les réponse pertinente
    N'oublie pas de fermer la discussion
    A+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Salut,

    Tu obtiens 0.0 parce que tu utilises un float(primitif) et non un Float (objet).
    Je connais pas trop Struts1, donc je sais pas si tu pourrais remplacer ton float par un wrapper Float pour obtenir le null.

    Dans tous les cas, je trouve plus logique d'utiliser un float pour ce qu'il est : un float et un string pour ce qu'il est : un string, que de faire des conversions.
    On utilise pas un langage fortement typé pour rien qd même

    Si un double égal 0.0 parce que l'user n'as rien saisi et que je veux null à un moment, je ferais le check dans le perform() ou dans le code métier
    et je ferais la suite de mon traitement en conséquence.
    Ils flottent tous en bas

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Si tu connais pas bien Struts1 vaut mieux ne rien dire
    Il n'y a pas de méthode perform() dans une action struts, pour la validation on utilise validate() dans l'ActionForm.
    Struts utilise des Converter pour convertir un String vers n'importe quel type de base et dans le cas où il ne peut pas soit il lance une exception ou renvoie une valeur par défaut tout dépend du comportement par défaut de ces Converter de base.
    A++

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Si tu connais pas bien Struts1 vaut mieux ne rien dire
    J'ai dit que je connais pas trop car je l'ai utilisé il y a déja quelques années. C'était du struts 1.0 et j'utilisais la méthode perform() justement.

    Il n'y a pas de méthode perform() dans une action struts,
    Pour ta gouverne, la classe Action de Struts a remplacé la méthode perform() par la méthode execute() entre Struts 1.0 et Struts 1.1.
    Aussi, garde tes sarcasmes et vérifie tes infos avant de dire n'importe quoi, merci.

    Donc remplace l'expression perform() par action() si tu veux.
    Le raisonnement reste le même.
    Ils flottent tous en bas

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Struts utilise des Converter pour convertir un String vers n'importe quel type de base et dans le cas où il ne peut pas soit il lance une exception ou renvoie une valeur par défaut tout dépend du comportement par défaut de ces Converter de base.
    Au passage, c'est pas parce que Struts est capable de convertir un String en entier ou en double lors du traitement de la requête qu'on on doit mettre des String partout : en l'occurrence si c'est un float qui est attendu.
    Si c'est la seule solution simple pour contourner un prob, je suis d'accord pour mettre un String. Mais si c'est parce qu'on veut pas un peu réfléchir, non.
    Ils flottent tous en bas

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Citation Envoyé par thebloodyman Voir le message
    J'ai dit que je connais pas trop car je l'ai utilisé il y a déja quelques années. C'était du struts 1.0 et j'utilisais la méthode perform() justement.


    Pour ta gouverne, la classe Action de Struts a remplacé la méthode perform() par la méthode execute() entre Struts 1.0 et Struts 1.1.
    Aussi, garde tes sarcasmes et vérifie tes infos avant de dire n'importe quoi, merci.

    Donc remplace l'expression perform() par action() si tu veux.
    Le raisonnement reste le même.
    Ne le prends pas mal .Effectivement la méthode execute() remplace perform() à partir de Struts 1.1 et je ne le savais pas
    A moins de redéfinir le FloatConverter, mettre un String comme type reste le meilleur compromis après tout en récupère des String dans un HttpServletRequest .

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/09/2008, 12h06
  2. Réponses: 1
    Dernier message: 23/07/2007, 15h30
  3. [D7][InterBase] conversion automatique de date
    Par Magnus dans le forum Bases de données
    Réponses: 4
    Dernier message: 09/05/2005, 14h58
  4. probleme d'espace non voulu entre 2 bloc
    Par piff62 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/04/2005, 16h07
  5. Conversion automatique de tiffs en jpg/gif
    Par Davenico dans le forum Composants VCL
    Réponses: 2
    Dernier message: 03/07/2003, 15h07

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