命令链接在具有datatable multiple selection-JSF的表单上不起作用

命令链接在具有datatable multiple selection-JSF的表单上不起作用,jsf,jakarta-ee,datatable,commandlink,Jsf,Jakarta Ee,Datatable,Commandlink,我在数据表中添加一行并刷新它的commamd链接中遇到问题。它工作正常,但当我在同一表单上添加另一个具有多个选择的表时,它停止了工作。他们之间有什么不相容的地方吗 我使用的是PrimeFaces 3.4、Mojarra 2.1.6和Glassfish 3 这是我的表格: <h2>Projeto para Credenciamento Equipe de Saúde da Família</h2> <hr /> <h:form id="fo

我在数据表中添加一行并刷新它的commamd链接中遇到问题。它工作正常,但当我在同一表单上添加另一个具有多个选择的表时,它停止了工作。他们之间有什么不相容的地方吗

我使用的是PrimeFaces 3.4、Mojarra 2.1.6和Glassfish 3

这是我的表格:

<h2>Projeto para Credenciamento Equipe de Saúde da Família</h2>
    <hr />
    <h:form id="formCredenciamentoEsf" prependId="false">
        <p:fieldset legend="Caracterização Geral">

            <p:panelGrid id="microareas" columns="2" cellspacing="8">

                <p:dataTable
                    value="#{credenciamentoEsfMB.credenciamentoESF.projeto.caracterizacaoTerritorialDemograficaList}"
                    var="carac" emptyMessage="Adicione uma microárea.">
                    <p:column
                        headerText="Microáreas que compõem a área de abrangência da ESF">
                        <p:inputText value="#{carac.microarea}" size="50" />
                    </p:column>
                    <p:column
                        headerText="População Estimada por Microárea (nº de pessoas)">
                        <p:inputText value="#{carac.populacaoEstimadaMicroarea}"
                            size="50" />
                    </p:column>
                    <p:column>
                        <p:commandLink
                            actionListener="#{credenciamentoEsfMB.removerCaracteristica}"
                            update=":formCredenciamentoEsf:microareas">
                            <f:setPropertyActionListener value="#{carac}"
                                target="#{credenciamentoEsfMB.caracteristicaSelecionada}" />
                            <h:outputText value="Remover " />
                        </p:commandLink>
                    </p:column>
                </p:dataTable>


            </p:panelGrid>

            <h:panelGrid columns="2">                   
                               <p:commandLink actionListener="#{credenciamentoEsfMB.addCaracteristicaTerritorialDemografica}"
                    update=":formCredenciamentoEsf:microareas">
                    <h:outputText value="Adicionar Microárea" />
                </p:commandLink>
                <h:outputLabel/>


                <h:outputLabel
                    value="População total coberta pela ESF (nº de pessoas):"></h:outputLabel>
                <p:inputText id="populacaoCoberta"
                    value="#{credenciamentoEsfMB.credenciamentoESF.populacaoTotalCoberta}" />

                <h:outputLabel
                    value="Caracterização da população a ser coberta pelas ações da ESF:" />

                <p:dataTable
                    value="#{credenciamentoEsfMB.populacaoCobertaDataModel}" var="pop"
                    id="dtCaracteristicaPopulacaoCoberta"
                    selection="#{credenciamentoEsfMB.populacaoCobertaSelecionadas}" >
                    <p:column selectionMode="multiple" />

                    <p:column headerText="População a ser atendida">
                        <h:outputLabel
                            value="#{pop.caracteristicaPopulacaoCoberta.descricao}" />
                    </p:column>
                    <p:column headerText="Nº de pessoas">
                        <p:inputText value="#{pop.numPessoas}" />
                    </p:column>
                </p:dataTable>


            </h:panelGrid>
        </p:fieldset>
    </h:form>
</ui:define>
家庭设备认证项目

当我放置最后一个带有多重选择的数据表时,“Adicionar Microárea”链接不起作用

这是我的托管bean:

@ManagedBean
@ViewScoped
public class CredenciamentoEsfMB {

    ....

    public PopulacaoCobertaDataModel getPopulacaoCobertaDataModel() {
        List<CaracteristicaPopulacaoCoberta> caracteristicas =  caracteristicaPopulacaoCobertaEjb.buscarTodos();
        populacaoCobertaEsf = new ArrayList<PopulacaoCobertaESFESB>();
        for (CaracteristicaPopulacaoCoberta caracteristicaPopulacaoCoberta : caracteristicas) {
            PopulacaoCobertaESFESB p = new PopulacaoCobertaESFESB();
            p.setCaracteristicaPopulacaoCoberta(caracteristicaPopulacaoCoberta);
            p.setCredenciamentoESFESB(credenciamentoESF);
            populacaoCobertaEsf.add(p);
        }
        this.populacaoCobertaDataModel = new PopulacaoCobertaDataModel(this.populacaoCobertaEsf);
        return this.populacaoCobertaDataModel;
    }


    public void removerCaracteristica() {       
        credenciamentoESF.getProjeto()
                .getCaracterizacaoTerritorialDemograficaList().remove(caracteristicaSelecionada);
    }


    public void addCaracteristicaTerritorialDemografica(ActionEvent e) {
        System.out.println("Adicionando microarea");
        credenciamentoESF.getProjeto()
                .getCaracterizacaoTerritorialDemograficaList()
                .add(new CaracterizacaoTerritorialDemografica());
    }


}
@ManagedBean
@视域
公共类凭证{
....
公共PopulatacoCobertAdatModel GetPopulatacoCobertAdatModel(){
List caracteristicas=caracteristicapopularcaocobertaejb.buscarTodos();
PopulatacoCobertaesf=新的ArrayList();
用于(Caracteristicapopularcaocoberta Caracteristicapopularcaocoberta:caracteristicas){
PopulacaoCobertEsb p=新的PopulacaoCobertEsb();
p、 Setcaracteristicapopularcaoberta(caracteristicapopularcaoberta);
p、 setCredenciamentoESFESB(credenciamentoESF);
加(p);
}
this.popularcaocobertadatamodel=新的popularcaocobertadatamodel(this.popularcaocobertaesf);
返回此.populacaoCobertaDataModel;
}
公共无效删除程序CaraCharacteristica(){
credenciamentoESF.getProjeto()
.getCaracteristicaoTerritorialDemographicalist().remove(caracteristicaSelecionada);
}
公共无效AddCaracteristicalTerriticalDemographica(行动事件e){
System.out.println(“Adicionando微阵列”);
credenciamentoESF.getProjeto()
.GetCaracterizacao TerritorialDemographicalist()
.添加(新的Caracterizao TerritorialDemografica());
}
}
有人知道发生了什么事吗