JSF 2.0 动态删除组件

Posted

技术标签:

【中文标题】JSF 2.0 动态删除组件【英文标题】:JSF 2.0 Dynamically Remove Components 【发布时间】:2011-06-25 19:04:26 【问题描述】:

在回答有关在 JSF 2.0 中动态添加组件的问题(请参见下面的链接)之后,我喜欢使用数据表的方法,但是删除其中一个添加的组件呢?

How to dynamically add JSF components

【问题讨论】:

【参考方案1】:

根据您链接的other question中的代码sn-p,您需要进行以下更改:

    在表格中添加一个带有删除按钮的列。

    <h:column><h:commandButton value="delete" action="#bean.delete" /></h:column>
    

    DataModel&lt;Item&gt; 属性添加到bean 并将项目列表包装在其中,以便您能够获取单击按钮的表格行。

    private DataModel<Item> model = new ListDataModel<Item>(items);
    

    (别忘了getter,注意你也可以在bean构造函数或者postconstruct中实例化这个)

    改为在数据表中使用它。

    <h:dataTable value="#bean.model" var="item">
    

    为 bean 添加一个删除方法。

    public void delete() 
        items.remove(model.getRowData());
    
    

另见:

Benefits and pitfalls of @ViewScoped - 包含 JSF 2.0 CRUD 表示例

【讨论】:

以上是关于JSF 2.0 动态删除组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JSF 中动态添加字段?

JSF 2.0将动态表单保存到数据库[重复]

在 JSF 2.0 中动态创建输入字段并将其链接到支持 bean

JSF组件的动态值绑定

将新组件动态添加到 JSF 组件树时重复 id

如何在 Ajax 请求期间在 JSF2 中动态添加组件