JSF - 访问SessionScoped托管bean

时间:2010-01-06 09:58:18

标签: session jsf session-variables

我是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是会话作用域时,它仍应在当前会话中可用。

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:0)

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