Bonjour,

Mon problème est le suivant : l'appli sur la quelle je me penche en ce moment possède sa propre (petite) librairie de tags. Dans l'un d'entre eux, il est question d'aller chercher la valeur d'un booléen dans une map, afin d'appliquer un style spécifique à un champ (typiquement : "en erreur oui / non").

Voici, grosso modo, le code du tag :

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
public class MyTag extends ELTextTag {
 
// Les attributs à la pelle
...
 
// La bonne vieille méthode appellée à l'exécution du tag
public int doStartTag() throws JspException {
     this.evaluateExpressions();
     return (super.doStartTag());
}
 
 
// La méthode "customisée"
public void evaluateExpressions() throws JspException {
 
     // Utilisation du singleton "toolbox" TagUtils afin de récupérer le formulaire
     // de classe "MyForm" (qui contient ma map de booléens)
     Object val = TagUtils.getInstance().lookup(this.pageContext, this.name, null, null);
 
     // Un petit coup de cast
     MyForm form = (MyForm) val;
 
     // On récupère le booléen
     Boolean bool = form.getMyMap.get(this.getPropertyExpr());
 
     // On applique le traitement sympa en testant le booléen
     ...
 
     }
}
Ce tag fonctionne parfaitement, et c'est justement ça qui m'étonne. En effet je ne comprends pas pourquoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
TagUtils.getInstance().lookup(this.pageContext, this.name, null, null)
peut me renvoyer le formulaire du pageContext...


La doc (http://struts.apache.org/1.2.7/api/o...lang.String%29) dit bien que :
- le premier paramètre doit être le contexte de la JSP
- le second paramètre doit être le nom du bean que je cherche à récupérer
- le troisième paramètre éventuellement la propriété du bean à laquelle je cherche à accéder
- le quatrième un éventuel scope dans lequel chercher


Or le second paramètre que je lui passe est "this.name", autrement dit "MyTag" il me semble.

Quelqu'un a-t-il une explication ?

Merci d'avance pour votre aide.