JSF - brak dostępu do bean'a w jego pierwszym wywołaniu

0

Proszę o radę / pomoc.
Sytuacja jest taka. Chcę użyć beana

'''@ManagedBean(name="#{dwa}" eager=true)
private Dwa dwa'''

w bean'ie jeden.

a więc:
'''@ManagedBean(name="#{jeden}")
@RequestScoped
public class Jeden implements Serializable {
@ManagedProperty(value="#{dwa}")
private Dwa dwa;
...
'''

getter i setter dla dwa istnieją

mam dwie metody get i odpowiednie pola:
'''
public Double getLicz1() {
return 0.25 * dwa.getWartosc();
}

public Double getLicz2() {
return 10. * dwa.getWartosc();
}
...}'''

Podczas liczenia getLicz1(): dwa.getWartosc() = null
Natomiast podczas liczenia getLicz2(): dwa.getWartość() ma już konkretną wartość.
Bean dwa ma pole
'''private Double wartosc'''
odpowiednie getter i setter
w konstruktorze jest
'''wartosc = 2.;'''

Dlaczego w metodzie getLicz1(), bean dwa nie jest inicjalizowany? Dodam, że metody są wykonywane jedna za drugą. Widoczności beanów są te same. Wcześniej niż w getLicz2() w return kod się nie wysypuje.

Z góry dziękuje za pomoc.

0

Zakładam że korzystasz z jakiegoś starego poradnika, spróbuj wprowadzić takie poprawki:

@Named //zamiast ManagedBean
@javax.enterprise.context.RequestScoped //zamiast @javax.faces.bean.RequestScoped
class Jeden implements Serializable{

    @PostConstruct //zamiast konstruktora
    void init(){
      this.wartosc = 2;
    }

    @Inject // zamiast @ManagedProperty(value="#{dwa}")
    private Dwa dwa;

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1