如何在 JSF 中动态添加字段?
Posted
技术标签:
【中文标题】如何在 JSF 中动态添加字段?【英文标题】:How to Dynamically adding fields in JSF? 【发布时间】:2011-04-08 03:00:46 【问题描述】:大家好,
我急切地寻求有关使用 JSF 添加和删除字段和行的帮助。我正在使用 ICE Faces 来获得丰富的 UI 外观。以下是我的问题:
-
我必须连续添加一个文本框和两个按钮 (+) 和 (-)。
当用户单击 + 按钮时,应添加一个包含上述组件的新行。
当用户单击 - 按钮时,应从显示中删除相应的行。
我可以添加单个组件(如文本框)并将其删除。但是,这里我的挑战点是作为一行添加和删除。如何从 UI View Root 中删除该特定行(实例)。
我已经尝试了几次,但直到现在我都找不到解决方案。请向我建议可能的解决方案。
提前致谢, 克里希纳
【问题讨论】:
【参考方案1】:宁可使用h:dataTable
(或IceFaces 等效的ice:dataTable
),它由List<Data>
连续对象支持,每个对象代表单行的数据。在 Add 上,只需将一个新的 Data
项目添加到列表中。在 Remove 上,只需从列表中删除选定的 Data
项目。
另见:
How to dynamically add new row to table? - 类似问题的详细回答 Using Datatables - 逐步展示如何在 JSF 1.x 中使用数据表。 CRUD datatable using @ViewScoped - JSF 2.0 CRUD 的简单示例【讨论】:
您好 BalusC,谢谢您的回复。您的意思是我可以在 DataTable 行本身中添加任何组件吗?您是否有任何用于支持 bean 的示例代码或 API?那会很有帮助。我会尝试,如果我有任何疑问,请告诉您。谢谢,克里希纳 不,您不会添加整个组件。这不必要地过于复杂。只需在dataTable
正在使用的列表/数据模型中添加一个新项目。然后datatable
会将其显示为新行。我已经用一些有用的链接更新了答案。以上是关于如何在 JSF 中动态添加字段?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 jsf 中动态添加 h:inputText 而不会丢失之前动态添加的 h:inputText 值? [复制]