【发布时间】:2013-03-16 08:05:20
【问题描述】:
我在 JSF managedbean 中有一些不同范围的变量(我觉得)。 在下面的 sn-p 中,userTable 用于 login() 和 register() 方法。 但是 roleList 只在 register() 方法中使用。
userTable 应该在会话范围内,因为它应该可以在用户会话期间访问。
我觉得 roleList 不应该在会话范围内,因为它只会在注册页面期间填充在组合框中。我想请求范围就足够了。
但是由于 UserManagedBean 已经在会话范围内,我如何将 roleList 放入 requestScope 中。
非常感谢您的建议。
@Named("user")
@Scope("session")
public class UserManagedBean implements Serializable {
private UserTable userTable = new UserTable();
private List roleList = new ArrayList();
public String login() {
// login process here
}
public String register() {
// register user here
}
【问题讨论】:
-
为什么不创建另一个请求范围的托管bean,并在注册页面中使用它?我认为,用户将使用一次注册页面进行注册
-
你确定你真的需要在这个中注入另一个托管 bean 或者你正在考虑将
UserTable作为你的业务逻辑类吗? -
我也在考虑。但是如果在一个方法中有两个不同范围的变量(例如在 register() 中)呢?
-
@Luiggi Mendoza UserTable 只是一个 POJO,没有业务逻辑。
-
那就不用担心了。您在另一个内部没有托管 bean。请参阅Difference between managed bean and backing bean 了解什么是托管 bean。
标签: jsf scope javabeans managed