JSF Controller, Service und DAO

Ich versuche zu gewöhnen, wie JSF arbeitet mit Bezug auf den Zugriff auf Daten (kommen aus einer Quelle, hintergrund)

Ich bin ein einfaches Beispiel, das verwaltet eine Liste der Benutzer, ich habe so etwas wie

<h:dataTable value="#{userListController.userList}" var="u">
    <h:column>#{u.userId}</h:column>
    <h:column>#{u.userName}</h:column>
</h:dataTable>

Dann der "controller" hat so etwas wie

@Named(value = "userListController")
@SessionScoped
public class UserListController {
    @EJB
    private UserListService userListService;

    private List<User> userList;

    public List<User> getUserList() {
        userList = userListService.getUsers();
        return userList;
    }
}

Und der "service" (obwohl es scheint mehr wie eine DAO) hat

public class UserListService {

    @PersistenceContext
    private EntityManager em;

    public List<User> getUsers() {
        Query query = em.createQuery("SELECT u from User as u");
        return query.getResultList();
    }
}

Ist das der richtige Weg, Dinge zu tun? Ist meiner Terminologie ist richtig? Der "service" fühlt sich mehr wie ein DAO? Und der controller fühlt sich an wie es ist, etwas von der Arbeit des Dienstes.

InformationsquelleAutor der Frage PDStat | 2015-06-04

Schreibe einen Kommentar