Ik heb de volgende JSF code:
Vrij basic code, die een lijst met huishoudens met daarin alle personen met hun naam plaatst.
Maar het probleem is dat de functie request() van de bean Opvragen voor elke keer dat er wordt geitereerd opnieuw wordt uitgevoerd.
Ik wil dat deze slechts één keer wordt uitgevoerd, ik wil dus dat het resultaat op de een of andere manier gekopieerd wordt, zodat ie over een hashmap loopt in plaats van over een functie zeg maar.
Als ik de functie vooraf uitvoer (door #{Opvragen.request()} boven de eerste c:forEach uit te voeren en vervolgens loop over #{Opvragen.householdInformation} (een getter die de gemaakte HashMap<Long, ArrayList<Person>> teruggeeft) krijg ik een foutmelding dat de property null is. Het lijkt alsof de c:forEach al wordt uitgevoerd terwijl de request() functie nog niet voltooid is.
Iemand enig idee hoe ik dit nou goed kan maken?
EDIT: En als ik ui:repeat gebruik, krijg ik ook helemaal geen resultaten.
Java Server Faces:
1
2
3
4
5
6
7
8
9
10
| <?xml version="1.0" encoding="UTF-8"?> <content xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <c:forEach items="#{Opvragen.request()}" var="info"> <household id="#{info.key}"> <c:forEach items="#{info.value}" var="person"> <person name="#{person.name}" /> </c:forEach> </household> </c:forEach> </content> |
Vrij basic code, die een lijst met huishoudens met daarin alle personen met hun naam plaatst.
Maar het probleem is dat de functie request() van de bean Opvragen voor elke keer dat er wordt geitereerd opnieuw wordt uitgevoerd.
Ik wil dat deze slechts één keer wordt uitgevoerd, ik wil dus dat het resultaat op de een of andere manier gekopieerd wordt, zodat ie over een hashmap loopt in plaats van over een functie zeg maar.
Als ik de functie vooraf uitvoer (door #{Opvragen.request()} boven de eerste c:forEach uit te voeren en vervolgens loop over #{Opvragen.householdInformation} (een getter die de gemaakte HashMap<Long, ArrayList<Person>> teruggeeft) krijg ik een foutmelding dat de property null is. Het lijkt alsof de c:forEach al wordt uitgevoerd terwijl de request() functie nog niet voltooid is.
Iemand enig idee hoe ik dit nou goed kan maken?
EDIT: En als ik ui:repeat gebruik, krijg ik ook helemaal geen resultaten.
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?