我是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文章,建议我们不要这样做......
答案 0 :(得分:3)
我应该在2个托管bean中拆分此功能吗?
是。每个视图/表单使用一个bean。保持支持bean类尽可能光滑。不要给它太多责任。