从Primefaces选项列表中获取元素

时间:2015-10-19 19:14:53

标签: primefaces

我试图将两个列表中的元素存储到我的数据库中,然后将这些元素存储到我的数据库中。

这是我的代码:

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

The Method&#34; alleObjekteWhite()&#34;和&#34; alleObjekteBlack()&#34;在init()中从我的数据库中获取元素。

所以现在我的问题是,listenWhite和listeBlack是空的,所以在speichern-Method中没有任何改变。

1 个答案:

答案 0 :(得分:0)

不,我得到了解决方案。错误是,我没有设定范围。所以默认的Scope是RequestScope,这是假的。我把它设置为SessionScope,它的工作原理! 谢谢