Masz rację, listą jest wygodniej.
Zrobiłem jakąś namiastkę tego co chcę, ale cały kod wsadzony mam w SessionBean, a w PageBean (Page1.java) tylko:
@Override
public void prerender() {
// getSessionBean1().
try {
getSessionBean1().buildAllParams();
}
catch (Exception ex) {
log("Error Description", ex);
error(ex.getMessage());
}
}
gdzie buildAllParams() to metoda wyciągająca dane z bazy w postaci:
protected void buildAllParams()
try {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
Query q = session.createQuery("from Params");
paramsList = (List<Params>) q.list();
}
catch(Exception e) {
e.printStackTrace();
}
}
Nie wiem jak napisać buildAllParams() żeby wsadzić ją do PageBean i żeby działała.
Czy funkcję createQuery znajdę gdzieś indziej niż tylko w obiekcie klasy Session?
...i dodatkowe pytania - w jaki sposób page1.jsp jest połączona z page1.java? W żadnym pliku xml nie ma zapisanych informacji o tym, więc gdzie NetBeans zapisuje te informacje? Wiem, że jak przypiszę dane do tabeli z obiektu dane klasy SessionBean, to w jsp pojawi się
sourceData="#{SessionBean.dane}", ale przecież w edytorze plik jsp i java są ze sobą ściśle skojarzone.
Pytanie to przyszło mi do głowy przy okazji próby zrozumienia jak działa aplikacja web-owa. Wydaje mi się, że jest tak:
- Wywołanie requesta z przeglądarki skutkuje odpaleniem web.xml - ten przekierowuje mnie na plik strona1.jsp
- Odpala się plik strona1.java (nie wiem czemu nie strona1.jsp - to nigdzie nie jest zapisane w kodzie).
- Co dalej? Jaka jest kolejność wywołań, gdzie jest jakaś funkcja main? W tutorialu do hibernate dla NetBeans piszą:
To use Hibernate you need to create a helper class that handles startup and that accesses Hibernate's SessionFactory [...] The helper class first calls Configuration() to load the hibernate.properties file. The class then calls configure() and loads the hibernate.cfg.xml configuration file. Finally, the helper class builds the SessionFactory to obtain the Session object.
Nie widzę tego w praktyce, bo jak ustawiam breakpoint-a na tą klasę (nazwana HibernateUtil.java), to okazuje się, że program w ogóle nie przechodzi przez ten plik!
Byłbym wdzięczny za opisanie całego procesu (co jest inicjowane jako pierwsze, które metody są wywoływane zawsze i kiedy uruchamia się .java a kiedy .jsp)