Przechowuję z primefaces listę elementów z obu list do mojej bazy danych, ale to działa.
Oto mój kod:
private DualListModel<Objekt> verfuegbar;
private List<Objekt> white;
private List<Objekt> black;
[...]
public void speichern() {
List<Objekt> listeWhite = white;
List<Objekt> listeBlack = black;
//This also not working
// List<Objekt> listeWhite = verfuegbar.getSource();
// List<Objekt> listeBlack = verfuegbar.getTarget();
for (Objekt oW : listeWhite) {
oW.setBw(1);
objektDAO.aendern(oW);
}
for (Objekt oB : listeWhite) {
oB.setBw(0);
objektDAO.aendern(oB);
}
white = objektDAO.alleObjekteWhite();
black = objektDAO.alleObjekteBlack();
verfuegbar = new DualListModel<Objekt>(white, black);
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Gespeichert", "Alle Daten wurden gesichert");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
@PostConstruct
private void init() {
// Liste füllen
white = objektDAO.alleObjekteWhite();
black = objektDAO.alleObjekteBlack();
verfuegbar = new DualListModel<Objekt>(white, black);
if (white.size() > 0 || black.size() > 0) {
inhaltInListe = true;
}
}
[...]
//getter and setter
Metoda „alleObjekteWhite ()” i „alleObjekteBlack ()” w init () pobiera elementy z mojej bazy danych.
Więc mój problem polega na tym, że listeWhite i listeBlack są puste, więc nic nie zmienia się w metodzie speichern.
Odpowiedzi:
0 dla odpowiedzi № 1Nie, mam rozwiązanie. Błąd polegał na tym, że nie ustawiłem zakresu. Domyślnym Scope był RequestScope, który był fałszywy. Ustawiłem go na SessionScope i działa! Dzięki