如何使用ajax动态添加jsf组件

时间:2016-10-02 01:12:37

标签: ajax jsf jsf-2

目前我有这个代码通过html请求动态添加组件。它按照我的预期工作。但我想通过使用ajax请求而不是html来添加组件。

test.xhtml

    <h:dataTable value="#{testController.items}" var="item">
        <h:column><h:inputText value="#{item.name}" /></h:column>
        <h:column><h:commandButton value="remove" action="#{testController.remove(item)}" /></h:column>
    </h:dataTable>
    <h:commandButton value="add" action="#{testController.add}" />

支持豆

@ManagedBean
@ViewScoped
public class TestController implements Serializable {

    private List<Language> items = new ArrayList<Language>();

    public void add() {
        items.add(new Language());
    }

    public void remove(Language item) {
        items.remove(item);
    }

    public List<Language> getItems() {
        return items;
    }
}

现在我需要使用ajax请求来执行此操作。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

这段代码对我有用

<h:dataTable id="testTable" value="#{testController.items}" var="item">
        <h:column><h:inputText value="#{item.name}" /></h:column>
        <h:column><h:commandButton value="remove" action="#{testController.remove(item)}" /></h:column>
    </h:dataTable>
            <h:commandButton value="add" action="#{testController.add}">
                <f:ajax execute="@this" render="testTable" />
            </h:commandButton>