【问题标题】:Jsf Edit functionality in a datatable数据表中的 Jsf 编辑功能
【发布时间】:2025-12-26 15:45:07
【问题描述】:

我有一个具有 5 个属性的 bean。用户必须在其中输入值并保存值。保存的值通过 ajax 功能显示在数据表中。它工作正常。问题是当我想编辑记录,我有与表格的每一行关联的编辑按钮。单击编辑按钮时,我必须获取记录并在数据表上方以可编辑格式显示记录。我必须使用什么组件来填充数据以进行编辑?编辑按钮也是一个 ajax 请求。我为此使用了 panelGrid,但我没有得到它们。 你能建议解决这个问题的正确方法吗? 谢谢大家…………

【问题讨论】:

标签: jsf datatable


【解决方案1】:

使用相同的数据表进行编辑。

如果单击编辑按钮,则将选定的值或索引存储在支持 bean 中并

  • 如果 rowValue != selectedItem 则呈现像 h:outputText 这样的输出组件
  • 如果 rowValue == selectedItem 则呈现像 h:inputText 这样的输入组件

在您的数据表中。

这是一个例子:

<h:dataTable value="#{myBean.itemList}" var="item">
  <h:column>
    <h:outputText value="#{item.someValue}" 
                  rendered="#{item != selectedItem}"/>
    <h:inputText value="#{item.someValue}" 
                 rendered="#{item == selectedItem}" />
  </h:column>
</h:dataTable>

【讨论】: