Jsf 2 PF子表内的单元格或行更新

Jsf 2 PF子表内的单元格或行更新,jsf-2,primefaces,Jsf 2,Primefaces,我对JSF没有太多的经验。我很难用从@BalusC answer中提取的只更新子表中特定于动态响应列的单元格: 然而,由于Mojarra 2.2.5开始支持它,它只是停止验证它;因此,您将永远不会再面临上述问题中提到的异常;稍后计划进行另一个增强修复 这仅在当前的MyFaces 2.2.7和PrimeFaces 5.2版本中不起作用。支持可能会在未来的版本中出现。同时,最好的办法是更新迭代组件本身,或者更新父组件,以防它不呈现HTML,如 我在Mojarra 2.2.11中成功地检查了它。如果允

我对JSF没有太多的经验。我很难用从@BalusC answer中提取的只更新子表中特定于动态响应列的单元格:

然而,由于Mojarra 2.2.5开始支持它,它只是停止验证它;因此,您将永远不会再面临上述问题中提到的异常;稍后计划进行另一个增强修复

这仅在当前的MyFaces 2.2.7和PrimeFaces 5.2版本中不起作用。支持可能会在未来的版本中出现。同时,最好的办法是更新迭代组件本身,或者更新父组件,以防它不呈现HTML,如

我在Mojarra 2.2.11中成功地检查了它。如果允许您在每次用户单击答案时更新所有问题,请使用:


你如何用JBoss实现Mojarra?谢谢你的回复。将Mojarra 2.2.5+添加到JBoss 7.1.1服务器的过程并不简单。我的笔记本电脑中也安装了JBoss,最后我选择安装包含Mojarra 2.2.11的Wildfly9。我已经按照建议安装了包含Mojarra 2.2.11的Wildfly9,但问题仍然存在。你很好ome。如果答案帮助您解决了问题,请接受它。若要将答案标记为已接受,请单击答案旁边的复选标记,将其从空心切换为绿色。我尝试过,但由于我的声誉不足15,因此无法接受。
<h:body>

<h:form id="form1">

<p:tabView id="tabView1" prependId="false" >

<p:tab title="TAB1"  >

<p:dataTable id="mainTable" var="head" value="#{subTableView.headers}" editable="true" editMode="cell">

    <p:subTable id="subbTable" var="question" value="#{head.questions}" >

        <f:facet name="header">
            <h:outputText value="#{head.name}" />
        </f:facet>

        <p:column>
            <h:outputLabel value="#{question.question}" />
        </p:column>

        <p:column>              
            <p:selectOneRadio id="mainSelect" value="#{question.select1}">

                <f:selectItem itemLabel="Yes" itemValue="#{question.responseOfYes}" />
                <f:selectItem itemLabel="No" itemValue="#{question.responseOfNo}" />

                <p:ajax update="response2" process=":form1:tabView1:mainTable" 

                    listener="#{questionBean.saveAnswers(question.select1,question.id)}" />

            </p:selectOneRadio>

        </p:column> 


        <p:column id="colToUpdate">
                <h:outputText id="response2" value="#{question.select1}" binding="#{input2}" />
        </p:column>

    </p:subTable>

</p:dataTable>

</p:tab>

<p:tab title="TAB2">

</p:tab>
<h:form id="form">
    <ui:repeat id="list" value="#{yourBean.lista}" var="item">
        <h:outputText id="item" value="#{item}" /><br/>
    </ui:repeat>

    <p:commandButton onclick="return false;" value="Prueba" render=":form:list:1:item" action="#{yourBean.updateSecond()}"/>

     <h:commandButton value="Update second item">
         <f:ajax render=":form:list:1:item" listener="#{yourBean.updateSecond()}"/>
    </h:commandButton>
</h:form>
@Named
@ViewScoped
public class yourBean implements Serializable{

    private static final long serialVersionUID = 1L;

    private List<Integer> lista = new ArrayList<>(); 
    public List<Integer> getLista() {
        return lista;
    }

    public void updateSecond(){
        this.lista.set(1, 9999);
    }

    @PostConstruct
    public void populateModel(){    
        lista = Arrays.asList(1,2,3,4,5,6,7,8,9);   
    }       
}