Jsf 2 完成操作,然后更新表jsf

Jsf 2 完成操作,然后更新表jsf,jsf-2,primefaces,Jsf 2,Primefaces,我想要的是commandButton应该首先完成操作,然后更新dataTable,但实际上它是在执行操作之前更新dataTable。有人能建议怎么做吗?。谢谢 <p:dataTable id="files" var="file" value="#{tableBean.lstFiles}" rowKey="#{file.fname}" selection="# {tableBean.selectedFile}" selectionMode="single" >

我想要的是
commandButton
应该首先完成操作,然后更新
dataTable
,但实际上它是在执行操作之前更新
dataTable
。有人能建议怎么做吗?。谢谢

<p:dataTable id="files" var="file" value="#{tableBean.lstFiles}" rowKey="#{file.fname}" selection="#
     {tableBean.selectedFile}"  selectionMode="single"  > 

    <p:ajax event="rowSelect" listener="#{tableBean.onRowSelect}"  />
    <p:ajax event="rowUnselect" listener="#{tableBean.onRowUnselect}"/>

     <p:column headerText="Date"> #{file.fname}</p:column>  
     <p:column headerText="Type"> #{file.ftype}</p:column>  
     <p:column headerText="Date"> #{file.fdate}</p:column>  
    <p:column headerText="View File" >
  <p:commandButton id="folder" action="#{folderName.name}" value="Open" update=":form2:files" icon="ui-icon-arrowthichk-s"  >                   
         <f:setPropertyActionListener target="#{folderName.foldername}" value="#{file.fname}" />
                    </p:commandButton>
                </p:column>  

            </p:dataTable> 

#{file.fname}
#{file.ftype}
#{file.fdate}

看看这个。您的actionListener应该首先执行您是如何确认这是真正发生的事情的?@Darka感谢您的帮助,但我想要的是button click file.fname应该是tableBean类的实例变量的新值,actionListener没有帮到我。@kolossus我正在使用system.out.println语句查看执行。你的意思是它呈现数据表,然后执行操作还是什么?Standart JSF生命周期(简化,不是所有阶段)是这样工作的:检索更改的值+转换它们->验证->更新模型值->执行业务逻辑(操作在此处执行)->呈现响应