Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PrimeFaces dataTable在使用标记更新的异步部分提交请求后未更新?_Java_Jsf_Jakarta Ee_Primefaces - Fatal编程技术网

Java PrimeFaces dataTable在使用标记更新的异步部分提交请求后未更新?

Java PrimeFaces dataTable在使用标记更新的异步部分提交请求后未更新?,java,jsf,jakarta-ee,primefaces,Java,Jsf,Jakarta Ee,Primefaces,我试图在从dataTable中删除一个元素后更新dataTable,但它工作不正常。我必须刷新页面才能更新dataTable,或者在多次单击delete按钮后,该表将再次呈现,而无需手动刷新整个页面 如果我单击delete,它确实会被删除,但是,直到我刷新页面,dataTable才会重新呈现 根据primefaces文档,标签更新应部分更新页面 [![在此处输入图像描述][3][3] 这是我的代码,一切似乎都是正确的,但可能我遗漏了什么 <h:form id="form">

我试图在从dataTable中删除一个元素后更新dataTable,但它工作不正常。我必须刷新页面才能更新dataTable,或者在多次单击delete按钮后,该表将再次呈现,而无需手动刷新整个页面

如果我单击delete,它确实会被删除,但是,直到我刷新页面,dataTable才会重新呈现

根据primefaces文档,标签更新应部分更新页面

[![在此处输入图像描述][3][3]

这是我的代码,一切似乎都是正确的,但可能我遗漏了什么

 <h:form id="form">
        <p:dataTable id="studentsDataTable"
                     value="#{studentsController.students}"
                     var="student"
                     rowKey="#{student.username}"
                     selection="#{studentsController.studentSelected}"
                     selectionMode="single">

            <!--Header-->
            <f:facet name="header">
                Spanish Academy : Students' List
                <p:button value="Add Student" outcome="new_student" />
            </f:facet>

            <p:column headerText="Username">
                <h:outputText value="#{student.username}" />
            </p:column>
            <p:column headerText="Firstname">
                <h:outputText value="#{student.firstname}" />
            </p:column>
            <p:column headerText="Lastname">
                <h:outputText value="#{student.lastname}" />
            </p:column>
            <p:column headerText="Edit" style="width:50px">

            </p:column>
            <!--Footer-->
            <f:facet name="footer">
                <p:commandButton value="Delete" process="@form" update="form:studentsDataTable"  actionListener="#{studentsController.deleteStudent}" icon="ui-icon-close"/>
                <p:spacer height="5px;"/>
            </f:facet>
        </p:dataTable>
    </h:form>

西班牙学院:学生名单
有什么想法吗,伙计们


提前感谢。

最后,在根据几条消息来源和好心人的建议寻找了许多解决问题的方法之后,我使用Prime Faces Collector解决了这个问题

如果您正在使用PrimeFaces并希望快速构建包含表和数据的表单,我建议您使用collector组件,您可以轻松地从列表中删除和添加元素。在backingbean中,您可以轻松地在短时间内设置逻辑,以便根据我们的需要更新任何记录

我希望它能帮助有我问题的人


您是否已经尝试在菜单项中使用update=“@form”而不是“students”?开始阅读,您是否在jsf开发模式下运行应用程序以查看是否存在任何错误?在没有CellEditor的情况下尝试过(让它成为一个wpuld甚至更好),并尝试了一个简单的jsf(非primefaces数据表,看看这是否有区别)@ThomasSallaberger感谢您花时间回答,我还没有尝试过update=“@form”,一旦我做了,我会让您知道,再次感谢。@Kukeltje感谢您的建议,我会跟着他们找到解决办法,谢谢@ThomasSallaberger我试过使用'@form',但是什么都没有,我已经重构了表单,但是,我还没有发现问题。事实上,我发现在多次单击“删除”按钮后,表再次呈现,我不知道为什么。我甚至遵循了prime faces Cool的一个展示示例。我们需要调查一下。您的答案可能需要一些额外的澄清,以便其他人能够更好地理解其用法