Diyelim ki böyle bir outputText bileşeni belirtiyorum:
<h:outputText value="#{ManagedBean.someProperty}"/>
Alıcı alındığında bir günlük mesajı yazdırırsam someProperty
ve sayfayı yüklersem, alıcının istek başına bir kereden fazla çağrıldığını fark etmek önemsizdir (benim durumumda iki veya üç kez oldu):
DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property
DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property
Değerinin someProperty
hesaplanması pahalıysa, bu muhtemelen bir sorun olabilir.
Biraz googled ve bunun bilinen bir sorun olduğunu düşündüm. Bir geçici çözüm, bir çek eklemek ve daha önce hesaplanmış olup olmadığını görmekti:
private String someProperty;
public String getSomeProperty() {
if (this.someProperty == null) {
this.someProperty = this.calculatePropertyValue();
}
return this.someProperty;
}
Buradaki temel sorun, ihtiyaç duymayabileceğiniz özel değişkenlerden bahsetmemekle birlikte, bir sürü demirbaş kod almanızdır.
Bu yaklaşımın alternatifleri nelerdir? Bu kadar gereksiz kod olmadan bunu başarmanın bir yolu var mı? JSF'nin bu şekilde davranmasını engellemenin bir yolu var mı?
Girdiniz için teşekkürler!