Search code examples
jsf-2jstlfacelets

<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?


Solution

  • 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.