【发布时间】:2013-02-14 16:17:41
【问题描述】:
我想要的在下面实现,我将有三个页面。
userList.xhtml:这将有一个数据表中的用户列表。点击用户后,我将在下一页(detailsOfUser.xhtml)中看到各个用户的详细信息
detailsOfUser.xhtml:此页面将包含在上述页面中被点击的用户的详细信息。在此页面上,我将有一个 Edit 按钮,单击该按钮后,我将在下一页的文本字段中获得相同的值(editUserDetails.xhtml)
editUserDetails.xhtml:包含上一页用户详细信息的文本字段。在此页面上,我将拥有Save 按钮,单击该按钮后我将重定向回detailsOfUser.xhtml,在那里我将看到相应用户更新的值。
我应该如何为这些 bean 使用 bean 和范围?
我应该对所有三个页面使用一个 bean,还是应该对不同范围的三个 bean 使用?
【问题讨论】:
-
典型的经验法则:尽可能选择最窄的范围。我的理解(简短)是:将
@RequestScoped用于简单的输入/输出数据(不会使用ajax,例如显示额外的细节),@ViewScoped用于在使用ajax 或回发到当前视图时保存数据(因此,进行修改等),因此,避免不必要的 bean 重新实例化,@SessionScoped用于保存固有地属于用户(会话)的数据,例如用户本人、他的偏好、他在站点上所做的选择(他查看的用户等)。 )。
标签: java jsf jsf-2 scope javabeans