2011-07-21 35 views
6

Tôi có những điều sau đây:<ui: param và bộ nhớ đệm

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

<ui:param> không cache biến, Bean.getRandomVideo() được gọi là hai lần, và phần tồi tệ nhất là các .text.link là từ video khác nhau. Tôi đã thử <c:set<f:param. Cả hai đều không thiết lập biến, có thể bởi vì tôi là với facelets (JSF2).

Bất kỳ ý tưởng nào?

Trả lời

2

Getters được coi là getters thực, không chứa bất kỳ logic nào. Vì vậy:

  • làm bean@RequestScoped
  • bạn khởi tạo randomVideo trường trong @PostConstruct
  • để cho các getter chỉ lấy randomVideo lĩnh vực hạt cà phê.
+0

Thực ra, tôi phải chuyển logic của mình sang một bean mới, nhưng nếu chúng ta bỏ qua mã bổ sung thì giải pháp này tốt hơn tôi - đặt video ngẫu nhiên trong yêu cầu và kiểm tra xem có gì trong yêu cầu trong getter) – mist

Các vấn đề liên quan