3

我是 JSF 的新手,我正在做一些基本的事情来了解应该如何使用它。在我的一个项目中,我有一个 ManagedBean,SessionScoped 如下所示

@ManagedBean(name="user")
@SessionScoped
public class User implements Serializable
// Having a couple of String properties (with setters and getters).

现在,在表单的一个页面中,我有一个<h:inputText id="firstName" value="#{user.firstName}" ... />我希望从用户那里获得一个值并将其放入我的 bean 的属性中。第二页只显示输入数据,从 bean 访问它。( <h:outputText value="${user.firstName}"/>)。

问题是,如果在那之后我进入第三页(只需键入 URL)并且尝试使用同一行再次显示来自 bean 的数据,则不会显示任何数据。我期待虽然 bean 是会话范围的,但它应该在当前会话中仍然可用。

4

2 回答 2

8

确保您使用的是 import javax.faces.bean.SessionScoped,而不是 javax.enterprise...;

于 2010-01-24T05:03:44.470 回答
0

也许有人对此仍然感兴趣:我遇到了与上述相同的行为。最终的解决方案是通过@Named 替换@ManagedBean。到目前为止,我还没有弄清楚 @ManagedBean 注释的语义。所以我无法解释有什么区别。

于 2013-02-05T13:06:19.517 回答