Problem z pobieramiem danych w JSF.

Problem z pobieramiem danych w JSF.
EI
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 2 lata
0

Po zalogowaniu uzytkownika, wyświetlane sa dane kilku tabelach zrobione analogicznie z poniższym kodem. Nie wiem dlaczego ale często gdy uzytkownik loguje się pierwszy raz, nie widac danych. Dopiero przy 2gim logowaniu wszystko działa poprawnie. Nie mam dużego doświadczenia w JSF, może powinienem coś załadować na starcie? Brak jakichkolwiek błędów.

Kopiuj
@ManagedBean
@ViewScoped
public class MyRequestBean implements Serializable{

    static ArrayList<Request> list;
    static User user = new User();

   public MyRequestBean() {
        update();
    }

public static void update() {

        list = new ArrayList();  
        user = (User) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("user");  
        if(user != null){      
            try {           
                list = (ArrayList<Request>) DAO.GlobalDOA.getHqlQuery("from Request r where r.user='"+user.getSapCode()+"' and r.archived=0 and r.requestType=1");                         }
            catch (IOException ex) {Logger.getLogger(MyRequestBean.class.getName()).log(Level.SEVERE, null, ex);}    }
    }
}
SZ
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:616
0

Moze wiem scope tworzy się przed napełnieaniem sesji, wywal ten update z konstruktora tak sie nie robi

EI
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 2 lata
0

Niestety to nie to. Problemem jest pusty obiekt user.

Robie tak:

  1. Wyświetlam dane po zalogowaniu - wszystko jest ok.
  2. Wciskam przyciks wyloguj i wywołuje wetode o zawartości:

FacesContext.getCurrentInstance().getExternalContext().invalidateSession();

  1. Aplikacja przechodzi na strone index
  2. Wywołuje raz jeszcze konstruktor powyższej klasy z pustym obiektem user. I stąd te problemy Ale nie wiem dlaczego ten konstruktor jest raz jeszcze wywoływany.
jarekczek
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Siemianowice Śląskie
  • Postów:500
0
Eiten napisał(a):

[...]
4. Wywołuje raz jeszcze konstruktor powyższej klasy z pustym obiektem user. I stąd te problemy Ale nie wiem dlaczego ten konstruktor jest raz jeszcze wywoływany.

Konstruktora się nie wywołuje (tylko tworzy obiekt), a już na pewno nie w przypadku beana zarządzanego.


Przeważnie ignoruję niezarejestrowanych użytkowników.
jarekr000000
Kiedyś, jak ludzie będą czytać o tych konstruktorach, których nie można wywołać, to nie ogarną. (Pytanie z dzisiaj od kolegi, rubiowca, który poszedł na przezentacje ze Springa... czy Java wam coś robi z mózgami złego? Przy czym on uważa, że ruby (zasadniczo railsy) są strasznie popsute...
jarekczek
Wiem, trochę herezja, ale mam wrażenie, że OP robi coś dziwnego z tym konstruktorem :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.