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

Servlets/JSP Java Discussion :

[Struts][JSP] Format avec bean:write


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Points : 78
    Points
    78
    Par défaut [Struts][JSP] Format avec bean:write
    J'ai la ligne suivante où j'affiche la valeur d'un java.lang.Float :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:write name="dossierForm" property="dossier.remunerationDesiree" format="###'###.##" />
    Selon la doc de Struts, il est possible de donner un format à une propriété de bean...
    format Specifies the format string to use to convert bean or property value to the String. If nothing specified, then default format string for value data type will be searched in message resources by according key.
    Or, je pense que le format est le bon, si c'est bien le Format de String auquel je pense, mais cela ne marche pas, et la balise semble être ignorée. Que se passe-t-il ?

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Quelle est l'erreur que tu obtiens ?

    A mon avis ton pattern n'est pas bon tu devrais plutôt avoir : #,###.##

  3. #3
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Points : 78
    Points
    78
    Par défaut
    Salut,
    justement je n'ai aucune erreur, c'est comme si je n'avais pas spécifié de format.
    C'est un format suisse, c'est pour ça que je n'ai pas le même pattern que toi

  4. #4
    Membre régulier
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Le problème c'est que quand tu spécifies le pattern via l'attribut format, tu dois fournir un pattern générique et non pas un pattern localisé => cad , pour le séparateur des milliers et . pour le séparateur décimal. Ces séparateurs seront remplacés par les séparateurs de la locale que tu utilises lors de l'affichage. => en Suisse , deviendra ' et . deviendra .

    Toi tu essayes d'utiliser un pattern localisé et c'est pour ça que ça ne fonctionne pas. Si tu souhaites utiliser un pattern localisé alors tu dois stocker ton pattern dans un fichier .properties et le référencer via l'attribut formatKey au niveau du bean:write.

    Voilì

    ++

  5. #5
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Points : 78
    Points
    78
    Par défaut
    D'accord, le raisonnement me semble logique...
    J'ai donc changé ma ligne en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write name="dossierForm" property="dossier.remunerationDesiree" formatKey="global.devise.format" />
    Et j'ai mis une clé dans mon Application.properties :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    global.devise.format=#'###.##
    Mais le format n'est toujours pas pris en compte...

  6. #6
    Membre régulier
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Tu as vérifié que tu étais bien en locale langue français pays suisse ?
    Sinon essaye de mettre un \ devant le ' dans ton pattern => #\'###.##

  7. #7
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    va voir dans la faq Struts

    http://java.developpez.com/faq/struts

  8. #8
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Points : 78
    Points
    78
    Par défaut
    OK merci à vous deux pour votre aide. Je vais essayé tout ça et vous tient au courant.

  9. #9
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    en gros ton pb c'est qu'il faut que ton pattern se trouve dans un bundle suisse.

    Sinon ca marche pas .


    @+

  10. #10
    Membre régulier
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Yep yep !

    Tiens nous au courant qd même !

    Sinon merci RanDomX pour ta FAQ Struts, bien que je n'ai pas encore eu le temps de tout lire.

    ++

  11. #11
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    Si vous avez des questions que vous souhaitez voir traitée dans cette FAQ, un petit MP, et j'étudie la question...


    @+

  12. #12
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Points : 78
    Points
    78
    Par défaut
    Bon j'ai testé ce qu'il y avait sur cette FAQ, mais le problème reste le même.
    Il est dit que la Locale peut poser problème, alors pour en être sûr, j'ai vérifié la Locale utilisée (FR) bien que je sois en suisse où la locale est normalement FR_CH.
    Ensuite, le format pour les nombres que j'ai défini est "# #00,00" qui est bien français, enfin je pense !
    Or, avec l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write name="dossierForm" property="dossier.remunerationDesiree" format="# ##0,00" formatKey="global.devise.format" />
    Ce que j'obtiens à l'affichage est :
    1000.0

    J'utilise un Float dans ma servlet, c'est le format par défaut j'imagine ?

  13. #13
    Membre régulier
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Bah c normal cowa !

    Il faut ajouter un \ devant l'espace => ton pattern devient #\ ###,##

    Et là ça risque de marcher

  14. #14
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Points : 78
    Points
    78
    Par défaut
    Et non ce n'est toujours pas ça, pourtant je suis quasiment certain qu'il charge bien le format, mais il ne me retourne pas mon Float sous le bon pattern...

  15. #15
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    Tu es sur de ta locale ? si tu mets le pattern directement ss passer par une clé ca marche ?

    Sinon set la locale explicitement avec setLocale dans l'action pour voir ....

  16. #16
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Points : 78
    Points
    78
    Par défaut
    Pour la Locale, oui je suis sûr, vu que j'ai 3 fichiers ApplicationResources.properties, et qu'il me charge le ApplicationResources_fr.properties. Je le remarque à l'affichage...
    Ensuite, même si je spécifie seulement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:write name="dossierForm" property="dossier.remunerationDesiree" format="###.##" />
    simplement pour avoir les deux zéros au lieu d'un seul (500.00) ca ne m'en affiche qu'un seul.

  17. #17
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    Si tu veux avoir deux zero, ton pattern doit le faire apparaitre explicitement


    ###.00 par exemple
    ou
    #,##0.00

  18. #18
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Points : 78
    Points
    78
    Par défaut
    OK enfin, il me fallait surtout les deux chiffres après la virgule mais passons.

    J'ai testé avec un java.lang.Int dans le même format et là... ça marche. Donc je pense que le problème vient du fait que j'utilise un java.lan.Float...
    Et voilà, ce n'est explicité nulle part dans la doc.

    A+

  19. #19
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    ce qu'il y a en fait c que la valeur est passée en String, donc ya forcement des transformations....

    Je connais pas exactement le mécanisme interne qui est utilisé...

    Si ca marche tant mieux.

    @+

  20. #20
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Points : 78
    Points
    78
    Par défaut
    Je ne connais pas non plus le mécanisme interne, donc le plus "simple" ca sera de gérer manuellement le rapatriement de la valeur depuis la source de données jusqu'à ma JSP.
    C'est à dire de convertir moi-même la valeur en String pour affichage.

    PS : il me semble avoir lu qq part une "best practice" qui disait "ne travaillez qu'avec des String avec la partie Vue"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/11/2011, 14h35
  2. Affichage avec <bean:write
    Par metalcoyote dans le forum Struts 1
    Réponses: 1
    Dernier message: 13/09/2006, 18h52
  3. Combiner <bean:message> avec <bean:write>
    Par Nullos Oracle dans le forum Struts 1
    Réponses: 23
    Dernier message: 12/06/2006, 03h30
  4. Réponses: 2
    Dernier message: 02/03/2006, 11h34
  5. [struts][jsp] problème avec request.getParameter
    Par stago dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 01/07/2004, 23h52

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