1

我是 JSF 的菜鸟,我试图找出以下场景最优雅的解决方案:
假设我有一个名为 UserMB 的用户管理 bean:

@ManagedBean
public class UserMB {

private User user;
private List<User> users;

// getters and setters here

public void addUser(User user){
    // do add user logic here
}


public List<User> listAllUsers(){
    // do list All users logic here
}


@PostConstruct
private void init(){

    // populate List<user> users - for the listAllUsers scenario

    }   
}

假设我没有直接提交给 listAllUsers() 方法的表单,而是我希望在打开页面 list-all-users.xhtml 时查看所有用户。当我从 addUser.xhtml 访问托管 bean 时,将对 DB 执行查询以加载所有用户,因为 bean 不知道我是要使用 listAllUsers() 方法还是 addUser() 方法。
我应该将此功能拆分为 2 个托管 bean 吗?

因为如果是这样,我将不得不创建几个托管 bean 来处理“用户”业务(即在 Struts2 中,我将只有一个操作来处​​理所有用户交互)。
PS 我知道有解决方案可以在 getter 方法中填充 List,但我阅读了 BalusC 的一篇文章,建议我们不要这样做......

4

1 回答 1

3

我应该将此功能拆分为 2 个托管 bean 吗?

是的。每个视图/表单使用一个 bean。保持支持 bean 类尽可能光滑。不要给它太多的责任。

于 2013-09-06T18:14:45.537 回答