视图创建期间的JSF 1.2 DataTable管理

时间:2013-06-02 17:16:38

标签: jsf-1.2

我对JSF 1.2如何正确管理DataTable有疑问。考虑一下这个表(假设tableList.persone有3个项目):

<h:dataTable id="tablePersone" value="#{tableList.persone}" var="item">   

  <h:column>
    <f:facet name="header">
      <h:outputText value="STATO" />
    </f:facet>
    <h:inputText value="#{item.stato}" />
  </h:column>
  <h:column>
    <f:facet name="header">
      <h:outputText value="CODICE" />
    </f:facet>
    <h:inputText value="#{item.codice}" />
  </h:column>

</h:dataTable>

我读到jsf在渲染响应阶段迭代列表中的项目,实际上,在构建视图时“item”不可用。

这是否意味着在创建树组件时,jsf不会为列表中的每个项复制表的内容?

在上表中,每行有2个inputText。如果jsf没有为每一行创建几个inputText对象,那么jsf在提交表单时如何处理所有6个请求参数(特别是在应用请求值阶段)。

非常感谢,

尼科

1 个答案:

答案 0 :(得分:0)

如果我没错?

还原视图阶段 - 在此阶段检索所请求页面的组件树(如果之前已显示)或构建新组件树(如果已显示) 首次。如果先前显示了该页面,则会设置所有组件 到他们先前的状态。这意味着JSF会自动保留表单信息。 例如,当用户发布在解码期间被拒绝的非法数据时, 输入被重新显示,以便用户可以纠正它们。

应用请求值阶段 - 在此阶段,JSF 实现迭代组件树中的组件对象。每 组件对象检查哪些请求值属于它并存储它们。

流程验证 阶段,首先转换提交的字符串值 “本地值”,可以是任何类型的对象。当你设计一个JSF 页面,您可以附加在本地执行正确性检查的验证器 值。如果验证通过,则JSF生命周期正常进行。然而, 当转换或验证错误发生时,JSF实现调用 直接渲染响应阶段,重新显示当前页面以便 用户有另一次机会提供正确的输入。

更新模型值阶段 - 在此阶段中 本地值用于更新连接到组件的bean。

调用应用阶段 按钮或链接组件的操作方法 导致表单提交被执行

呈现响应阶段 - 对响应进行编码并将其发送给 浏览器。