显示使用JSF登录的用户数

时间:2015-07-15 14:02:00

标签: jsf managed-bean

我试图运行此代码

@ManagedBean
@ApplicationScoped
public class Controller implements Serializable {

private static final long serialVersionUID = 1L;

private Benutzer benutzer;

private List<Erfasst> bisherErfasst = new ArrayList<Erfasst>();

private EntityManagerFactory emf = Persistence
        .createEntityManagerFactory("CP Kontrolle");
private static Controller instance = new Controller();

public Benutzer getBenutzer() {
    return benutzer;
}

public boolean anmelden(String email, int kdnr) {
    EntityManager em = emf.createEntityManager();
    Query query = em
            .createQuery("SELECT b FROM Benutzer b WHERE b.email = :email AND b.kdnr = :kdnr");
    query.setParameter("email", email);
    query.setParameter("kdnr", kdnr);
    List<Benutzer> liste = query.getResultList();
    em.close();
    if (liste.size() == 1) {
        benutzer = liste.get(0);
        AngemeldeteBenutzer.getAb().hinzufuegen(benutzer);

        return true;
    } else {
        return false;
    }
}

public static Controller getInstance() {
    return instance;
}
  [....]
}

}

上面的代码是我的ControllerBean。从登录表单中,将在“anmelden”类中检查用户数据,如果成功则返回true或false。如果成功,用户将被存储到列表中,如您所见。

@ManagedBean
@ApplicationScoped
public class AngemeldeteBenutzer implements Serializable {

private static final long serialVersionUID = 1L;

private List<Benutzer> online = new LinkedList<Benutzer>();
private static AngemeldeteBenutzer ab = new AngemeldeteBenutzer();

public static AngemeldeteBenutzer getAb() {
    return ab;
}

public List<Benutzer> getOnline() {
    return online;
}

public void hinzufuegen(Benutzer benutzer) {
    online.add(benutzer);

}

}

这是我的另一个Bean,它将成功登录的用户存储到列表中。 现在我想将所有用户列入我的表,但我的表仍然是空的。没有错误!

    <h:panelGrid columns="2" id="onlinePanel" >
        <h:dataTable value="#{angemeldeteBenutzer.online}" var="on">
            <h:column>
                <f:facet name="header">Email</f:facet>
                <h:outputText value="#{on.email}"></h:outputText>
            </h:column>
        </h:dataTable>
    </h:panelGrid>

0 个答案:

没有答案