2011-07-21 16 views
6

मैं निम्नलिखित बात है:<ui: परम और कैशिंग

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

क्योंकि <ui:param> चर कैश नहीं है, Bean.getRandomVideo() दो बार कहा जाता है, और सबसे बुरी बात यह है कि .text और .link अलग वीडियो से कर रहे हैं। मैंने पहले ही <c:set और <f:param को आजमाया है। वे दोनों चर सेट नहीं करते हैं, शायद क्योंकि मैं फेसलेट (जेएसएफ 2) के साथ हूं।

कोई विचार?

उत्तर

2

गेटर्स को असली गेटर्स माना जाता है, जिसमें कोई तर्क नहीं है। तो:

  • अपने bean@RequestScoped
  • प्रारंभ @PostConstruct
  • में randomVideo क्षेत्र जाने गेटर केवल सेम के randomVideo क्षेत्र को पुनः प्राप्त कर सकते हैं।
+0

वास्तव में, मैं एक नया सेम करने के लिए अपने तर्क को स्थानांतरित करने के लिए किया था, लेकिन अगर हम अतिरिक्त कोड उपेक्षा इस समाधान मेरा की तुलना में बेहतर था - अनुरोध में यादृच्छिक वीडियो डाल दिया और जाँच करें कि क्या वहाँ में अनुरोध में कुछ भी था गेटर) – mist

संबंधित मुद्दे