Hallo Ihr!
Ich möchte in meiner Anzeige die Daten bei jedem Laden neu ermitteln. Also nicht nur einmal beim Instanzieren der Session, sondern auch, wenn zum Beispiel im Browser F5 gedrückt wird. Weil dabei auf die Datenbank zugegriffen wird, soll das je Aktualsierung der Anzeige aber auch nur genau einmal passieren. Dazu habe ich in meiner Bean folgenden Code:
In der JSF-Seite habe ich nun eine datatable, die die Daten anzeigt. Außerdem soll der Benutzer darüber informiert werden, wenn die Liste gar keine Daten enthält. Dazu habe ich im Footer eine entsprechende Abfrage programmiert:
Mein Problem ist nun, dass der Zugriff auf die Daten bei jeder Anzeige doch zweimal erfolgt. Und zwar einmal wegen der EL "empty...." im Footer. Und einmal wegen Anzeige der dataTable selbst.
Vielleicht sehe ich es auch einfach nicht. Aber ich frage mich, wie och dieses Problem vernünftig lösen kann. Ich würde mich freuen, wenn mir jemand mit JSF-Erfahrung dazu was schreiben könnte.
Titus
Ich möchte in meiner Anzeige die Daten bei jedem Laden neu ermitteln. Also nicht nur einmal beim Instanzieren der Session, sondern auch, wenn zum Beispiel im Browser F5 gedrückt wird. Weil dabei auf die Datenbank zugegriffen wird, soll das je Aktualsierung der Anzeige aber auch nur genau einmal passieren. Dazu habe ich in meiner Bean folgenden Code:
Code:
public List<Model> getList() {
// Liste nur laden, wenn für die Anzeige aktuelle Daten benötigt werden
if (FacesContext.getCurrentInstance().getRenderResponse()) {
Transaction tx = getSession().beginTransaction();
List<Model> data = myDAO.findAll();
tx.commit();
}
return data;
}
In der JSF-Seite habe ich nun eine datatable, die die Daten anzeigt. Außerdem soll der Benutzer darüber informiert werden, wenn die Liste gar keine Daten enthält. Dazu habe ich im Footer eine entsprechende Abfrage programmiert:
Code:
<h:dataTable var="row" value"#{myBean.list}>
<h:column>
...
</h:column>
<f:facet name="footer">
<h:outputText rendered="#{empty myBean.list} value="Keine Einträge in der Liste." />
</f:facet>
</h:dataTable>
Mein Problem ist nun, dass der Zugriff auf die Daten bei jeder Anzeige doch zweimal erfolgt. Und zwar einmal wegen der EL "empty...." im Footer. Und einmal wegen Anzeige der dataTable selbst.
Vielleicht sehe ich es auch einfach nicht. Aber ich frage mich, wie och dieses Problem vernünftig lösen kann. Ich würde mich freuen, wenn mir jemand mit JSF-Erfahrung dazu was schreiben könnte.
Titus