Fonction JS et paramètres JSF

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
denisduval75
Messages : 14
Enregistré le : 18 déc. 2018, 08:42
Localisation : France

Fonction JS et paramètres JSF

Message par denisduval75 » 04 févr. 2024, 17:57

Bonjour,
Dans une appli web j'utilise Java et JSF (Java server faces) pour les pages.
Je souhaite appeler un script JS avec 2 tableaux Java en entrée comme ceci :

appel du script par la page xhtml :

Code : Tout sélectionner

initialiserLargeurColonne('#{utilitaireManagerBean.tableauValeur}', '#{utilitaireManagerBean.tableauColonneLargeur}')
et le script :

Code : Tout sélectionner

<script type="text/javascript">
            function initialiserLargeurColonne(tableauValeur, tableauLargeurColonne)
            {
                alert(tableauValeur); // --> Renvoie: [[Ljava.lang.String;@400cc2fd

                alert(tableauLargeurColonne); // --> Renvoie: [I@938339f  

            }
</script>

Les valeurs affichées par alert ne correspondent pas au contenu des tableaux.

Pouvez-vous m'aider SVP. Merci.
Modifié en dernier par denisduval75 le 05 févr. 2024, 10:01, modifié 1 fois.

Avatar du membre
webmaster
Administrateur du site
Messages : 616
Enregistré le : 28 févr. 2017, 15:19

Re: Fonction JS et paramètres JSF

Message par webmaster » 04 févr. 2024, 18:46

Bonjour

Dans ce type de cas, il faut reussir à voir d'ou vient le changement de valeurs
Que contient le rendu de la page xhtml ?

Code : Tout sélectionner

initialiserLargeurColonne('#{utilitaireManagerBean.tableauValeur}', '#{utilitaireManagerBean.tableauColonneLargeur}')
Le plus probable est que le rendu soit :

Code : Tout sélectionner

initialiserLargeurColonne('[I@938339f', '[I@938339f')
Ce qui veut dire que l'erreur vient de la partie java
TJS : 25 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

denisduval75
Messages : 14
Enregistré le : 18 déc. 2018, 08:42
Localisation : France

Re: Fonction JS et paramètres JSF

Message par denisduval75 » 05 févr. 2024, 08:35

Bonjour et merci de ma répondre.
Le rendu de la page est correct et coté serveur tout est correct aussi.
Les tableaux contiennent des montants pour le 1er tableau et des valeurs entières pour le second.

JolieKeva
Messages : 1
Enregistré le : 21 févr. 2024, 09:50

Re: Fonction JS et paramètres JSF

Message par JolieKeva » 21 févr. 2024, 09:52

webmaster a écrit :
04 févr. 2024, 18:46
Bonjour

Dans ce type de cas, il faut reussir à voir d'ou vient le changement de valeurs watermelon game
Que contient le rendu de la page xhtml ?

Code : Tout sélectionner

initialiserLargeurColonne('#{utilitaireManagerBean.tableauValeur}', '#{utilitaireManagerBean.tableauColonneLargeur}')
Le plus probable est que le rendu soit :

Code : Tout sélectionner

initialiserLargeurColonne('[I@938339f', '[I@938339f')
Ce qui veut dire que l'erreur vient de la partie java
Merci pour votre réponse. J'ai le même problème. je vais essayer ça et je te dirai le résultat

denisduval75
Messages : 14
Enregistré le : 18 déc. 2018, 08:42
Localisation : France

Re: Fonction JS et paramètres JSF

Message par denisduval75 » 24 févr. 2024, 08:44

OK Merci

andreeone23
Messages : 3
Enregistré le : 22 févr. 2024, 09:51

Re: Fonction JS et paramètres JSF

Message par andreeone23 » 04 juil. 2024, 10:40

Souhaitez-vous des conseils sur le formatage des montants et des valeurs entières pour un rendu optimal sur la page?
slither io

natalie321
Messages : 4
Enregistré le : 22 janv. 2024, 10:57

Re: Fonction JS et paramètres JSF

Message par natalie321 » 23 août 2024, 10:55

Pour transmettre des tableaux Java à un script JavaScript dans une application JSF, vous pouvez utiliser la sérialisation JSON, une bibliothèque JavaScript ou une conversion manuelle. build now gg

Meriem
Messages : 1
Enregistré le : 26 août 2024, 12:42

Re: Fonction JS et paramètres JSF

Message par Meriem » 26 août 2024, 21:54

Tu peux essayer de convertir tes tableaux Java en JSON avant de les passer au script JS. Par exemple, dans ton code Java, tu pourrais faire quelque chose comme ça :

String jsonTableauValeur = new Gson().toJson(utilitaireManagerBean.getTableauValeur());
String jsonTableauColonneLargeur = new Gson().toJson(utilitaireManagerBean.getTableauColonneLargeur());


<script type="text/javascript">
function initialiserLargeurColonne(jsonTableauValeur, jsonTableauLargeurColonne) {
var tableauValeur = JSON.parse(jsonTableauValeur);
var tableauLargeurColonne = JSON.parse(jsonTableauLargeurColonne);

console.log(tableauValeur); // maintenant, ça devrait afficher le contenu
console.log(tableauLargeurColonne);
}
</script>

Ça devrait faire le boulot. Sinon, fais gaffe aux types de données et à comment tu les transformes. Et si jamais tu galères trop, rappelle-toi : on est tous passés par là, même ceux qui ont trouvé leur job sans savoir comment débugger leurs scripts ! :lol: :lol: Bon courage avec ce casse-tête !
______________________________________________________________________________________________________________________________
Cliquez-ici pour découvrir notre site
Modifié en dernier par Meriem le 16 sept. 2024, 19:39, modifié 1 fois.

LaurieMcdowell
Messages : 5
Enregistré le : 09 juil. 2024, 14:21

Re: Fonction JS et paramètres JSF

Message par LaurieMcdowell » 24 févr. 2025, 16:08

Votre problème est lié au fait que dans JSF, le passage de tableaux Java à JavaScript ne fonctionne pas directement. Lorsque vous passez des tableaux comme celui-ci (#hollow knight{utilitaireManagerBean.tableauValeur}), JSF les sérialise en chaînes, mais JavaScript ne peut pas les interpréter correctement.

Répondre