【问题标题】:JSF 1.2 DataTable management during view creationJSF 1.2 视图创建期间的DataTable管理
【发布时间】:2023-03-18 11:04:01
【问题描述】:

我有一个关于 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在渲染响应阶段迭代列表中的项目,实际上在构建视图时“项目”不可用。

是不是说jsf在创建树组件的时候不会为列表中的每一项都复制表格的内容?

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

非常感谢,

尼哥

【问题讨论】:

    标签: jsf-1.2


    【解决方案1】:

    如果我没记错的话

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

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

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

    更新模型值阶段——在这个阶段 本地值用于更新连接到组件的 bean。

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 2012-12-01
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      相关资源
      最近更新 更多