jsf 2最好的一个托管bean多个视图

时间:2013-09-06 18:00:13

标签: jsf jsf-2

我是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中,我只有一个Action将负责所有用户交互)。
附:我知道有一个解决方案可以在getter方法中填充List,但我读了一篇BalusC文章,建议我们不要这样做......

1 个答案:

答案 0 :(得分:3)

  

我应该在2个托管bean中拆分此功能吗?

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