我正在尝试理解JSF的生命周期,我正在阅读以下教程:
它说:
该视图包含所有GUI组件,并且有很多 由JSF进行状态管理以跟踪视图的状态 - 通常 使用HTML隐藏字段。
我很困惑,JSF应用程序是否在与客户端交互期间保持Managed bean的状态是交互,或者它使用HTML隐藏字段,并模拟有状态bean。
答案 0 :(得分:2)
术语" JSF状态"不涉及托管bean属性(模型值)。它涉及UI组件属性,例如required
,valid
,immediate
,disabled
,readonly
,rendered
等。这基本上是仅由一个隐藏的输入字段引用,而不是由该教程暗示的多个字段引用。隐藏的输入字段是名称中带有javax.faces.ViewState
前缀的字段。
从技术上讲,JSF托管bean总是有状态的。有状态表示是否具有可变实例变量。 Javabeans基本上总是可变的,因此是有状态的。但是,JSF托管bean状态不存储在" JSF状态"中。 JSF托管bean只存储在服务器的内存中,通常作为HTTP请求,会话或应用程序的属性。
无关,您正在阅读的教程是JSF 1.x目标教程。 JSF 2.x已于5年前推出。如果是开发人员教程,请始终关注发布日期以及它所处理的版本。您可以从our JSF wiki page开始。