相关疑难解决方法(0)

96
推荐指数
2
解决办法
4万
查看次数

JSF控制器,服务和DAO

我正在尝试习惯JSF如何处理数据(来自弹簧背景)

我正在创建一个维护用户列表的简单示例,我有类似的东西

<h:dataTable value="#{userListController.userList}" var="u">
    <h:column>#{u.userId}</h:column>
    <h:column>#{u.userName}</h:column>
</h:dataTable>
Run Code Online (Sandbox Code Playgroud)

然后"控制器"有类似的东西

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

    private List<User> userList;

    public List<User> getUserList() {
        userList = userListService.getUsers();
        return userList;
    }
}
Run Code Online (Sandbox Code Playgroud)

而"服务"(虽然看起来更像是DAO)有

public class UserListService {

    @PersistenceContext
    private EntityManager em;

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

这是正确的做事方式吗?我的术语是对的吗?"服务"感觉更像是DAO?控制器感觉它正在做一些服务工作.

jsf dao ejb jpa java-ee

32
推荐指数
2
解决办法
3万
查看次数

什么用,托管bean(支持bean)或实体bean?

我看到很多将bean标记为实体bean(@Entity)和命名bean(CDI)的示例,以避免创建2个类(托管bean和实体bean)以及使用Bean Validation以便可以执行验证在客户端和服务器上.

那么我是否应该使用单个类,是否存在任何问题,或者我是否应该使用托管bean中的数据创建托管bean或服务层创建实体bean?

entity bean-validation jsf-2 managed-bean

14
推荐指数
1
解决办法
6192
查看次数

JSF 中 MVC 的矛盾解释

我开始学习 JSF,但首先我想了解它作为 MVC 框架的总体情况。

有几个得到很多赞同的答案解释了 JSF 中的 MVC 层,但它们通常是相互矛盾的。

BalusC的回答: JSF MVC框架中的MVC是什么组件?

在大的架构图中,您自己的 JSF 代码是V

M - 业务领域/服务层(例如 EJB/JPA/DAO)
V - 您的 JSF 代码
C - FacesServlet

在开发者图中,架构V依次可分如下:

M - 实体
V - Facelets/JSP 页面
C - 托管 bean

Jigar Joshi 在同一线程中的回答:

模型将是你的ManagedBean

视图将是jspXHTML(好吧,你可以在这里容纳各种视图)

控制器将是FacesServlet

这里,对这个问题的另一种看法:

在 JSF 中,您不实现控制器。因此,支持 bean 或任何其他类型的托管 bean 都不是控制器

还有一个,这次不是来自 Stackoverflow:

在 JSF 中,主控制器始终是 FacesServlet。子控制器被合并到各种控制元素标签实现中。您几乎从未在 JSF 中编写控制器代码,因为它都是预先提供的。因此,您只需提供视图模板 (xhtml) 和模型(支持 …

java model-view-controller jsf

5
推荐指数
1
解决办法
1044
查看次数

JSF 2重用JPA实体中定义的验证?

让我们从一个例子开始:


在我的JPA实体中

public class User {
    @Pattern("^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$", message="invalidEmailResourceBundleKey")
    private String email;

    @Min(5, message="minimumResourceBundleKey")
    private int age;

...
}
Run Code Online (Sandbox Code Playgroud)

在我的JSF Bean中

public class UserBean {
    private User user;

    // do i have to redefine it here, since it's already a part of the user ?
    @@Pattern("^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$") 
    public String getEmail() {
        return user.getEmail();
    }
    public void setEmail(String s) {
        user.setEmail(s);
    }

    // do i have to redefine it here, since it's already a part of the user ?
    @Min(5, message="minimumResourceBundleKey")
    public int …
Run Code Online (Sandbox Code Playgroud)

jsf jpa bean-validation jsf-2 jpa-2.0

2
推荐指数
1
解决办法
2852
查看次数