Bonjour,
J'ai écris un petit composant pour mes pages :
Je l'appelle, une seule fois, comme ça :
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 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" ...> <cc:interface> <cc:attribute name="mavar" required="true" /> </cc:interface> <!-- IMPLEMENTATION --> <cc:implementation> <!-- fait plein de trucs avec mavar --> </cc:implementation> </html>
et dans mon bean, j'ai mis un System.out :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<mescomp:mycomposant mavar="#{monbean.getTranslation(localeManager.lang)}" ... />
Le problème, tout con, que j'ai avec ça, c'est que j'appelle mon composant une seule fois, mais que lui il utilise mavar (ie. la translation) plein de fois. Et en fait il appelle getTranslation autant de fois. En gros, j'ai 20 fois "coucou" dans les traces. Or getTranslation, ça coûte cher...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class Monbean { ... public Trans getTranslation(String lang) { System.out.println("coucou"); ... }
Comment je peux faire pour que ça n'appelle getTranslation() que la fois où j'appelle mon composant et que ça transmette la valeur direct ?
Th.
Partager