Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

<ui:param and caching

I have the following thing:

<ui:param name="randomVideo" value="#{bean.randomVideo}" />
<a href="#{randomVideo.link}">#{randomVideo.text}</a&></pre>

Because <ui:param> does not cache the variable, Bean.getRandomVideo() is called twice, and the worst part is that the .text and .link are from different videos. I have already tried <c:set and <f:param. They both do not set the variable, maybe because I'm with facelets (JSF2).

Any ideas?

like image 449
mist Avatar asked Jul 21 '11 07:07

mist


1 Answers

Getters are supposed to be real getters, not containing any logic. So:

  • make your bean @RequestScoped
  • initialize the randomVideo field in @PostConstruct
  • let the getter only retrieve the randomVideo field of the bean.
like image 136
Bozho Avatar answered Sep 20 '22 13:09

Bozho