Euh, merci pour votre participation... et désolé pour les explications compliquées
!
Je vais essayer de réexpliquer mon problème plus clairement (effacez ce que j'ai dit avant) :
* Prenons ces classes de données (avec les références entre elles) :
Formulaire -> Individu -> Adresse (il s'agit d'un collection) -> String (la ville par exemple)
- En Java, je peux en principe écrire quelque chose comme :
monFormulaire.getIndividu().getAdresses().get(0).getVille()
- Et dans une jsp (si l'objet est dans la requête) :
${monFormulaire.individu.adresses[0].ville}
ou encore
${requestScope["monFormulaire"]["individu"]["adresses"][0]["ville"]}
Jusque là, je n'ai pas de problème.
* Maintenant, j'écris une balise jsp perso qui prend en paramètre deux éléments : le nom de l'objet de base et la chaîne pour atteindre l'attribut.
En clair, l'utilisation de la balise a cette forme :
<maBalise objet="monFormulaire" attribut="individu.adresses[0].ville" />
Dans le code de la balise, j'ai donc deux paramètres qui s'appellent objet et attribut. Et je veux écrire quelque chose comme :
${requestScope[objet][attribut]}
Dans le cas d'une utilisation "simple" de la balise, de ce type :
<maBalise objet="monFormulaire" attribut="individu" />
ça fonctionne, le code est équivalent à :
${requestScope["monFormulaire"]["individu"]}
Mais dans le cas d'une utilisation plus compliquée de la balise, telle que :
<maBalise objet="monFormulaire" attribut="individu.adresses[0].ville" />
ça ne fonctionne pas, le code est équivalent à
${requestScope["monFormulaire"]["individu.adresses[0].ville"]}
et il me dit
"beuh... ça existe pas l'attribut "individu.adresses[0].ville" "
alors que j'aurais aimé qu'il décompose ma suite d'attributs pour aller chercher l'individu, puis son adresse, puis sa ville
Le problème est que ça ne marche manifestement pas avec requestScope parce que le nombre de mes attributs est indéfini et qu'il faut que je les sépare pour utiliser requestScope. Et je ne vois pas non plus comment faire sans, parce que les noms de l'objet et de sa suite d'attributs se trouvent dans les paramètres de la balise. En gros il faudrait que je fasse
${ ${objet}.${attribut} }
Voilà, voilà, j'espère que c'est plus clair... et que quelqu'un pourra m'aider
Partager