Jsf 无法在PrimeFaces中完成和更新remoteCommand

Jsf 无法在PrimeFaces中完成和更新remoteCommand,jsf,primefaces,Jsf,Primefaces,我使用隐藏值和primeface的remoteCommand将参数从Javascript函数传递给ManagedBeans。在使用update属性调用webservice之后,我需要更新primeface datatable,在oncomplete中,我正在调用JS。Botn update和oncomplete对我不起作用 <h:form id ="pForm"> <p:dataTable style="height:500px;" id="activeStoreTable"

我使用隐藏值和primeface的remoteCommand将参数从Javascript函数传递给ManagedBeans。在使用update属性调用webservice之后,我需要更新primeface datatable,在oncomplete中,我正在调用JS。Botn update和oncomplete对我不起作用

<h:form id ="pForm"> 
<p:dataTable style="height:500px;" id="activeStoreTable" var="stIter" value="#   {flowScope.str}"  >
    <p:column width="140"  filterBy="#{stIter.Name}">
           <p:commandLink update="@form"
                 onclick="setCenter('#{stIter.Name}' );"/>                                  
      </p:column>
</p:dataTable> 

<h:inputHidden id="update" value="#{updateBean.value}" />
<p:remoteCommand name="remoteCommand" process="update" update=":pForm:activeTable"      oncomplete="init('flowScope.Str');"/>
<p:commandButton value="save" onclick="check();" name="saves" >
</h:form>


看起来像是一个打字错误,你想更新:pForm:activeTable但是这个表被称为activeStoreTable我想你做得不太好,我想没有调用remotecommand,因为要调用它,你必须将onclick=“setCenter('{stIter.Name}”替换为onclick=”remoteCommand()”,要传递“#{stIter.Name}”参数,可以执行以下操作

然后你会得到这样的结果:

<h:form id ="pForm"> 
<p:dataTable style="height:500px;" id="activeStoreTable" 
      var="stIter" value="#   {flowScope.str}"  >
    <p:column width="140"  filterBy="#{stIter.Name}">
           <p:commandLink update="@form"
                 onclick="remoteCommand()"
                 oncomplete="javascript:init('flowScope.Str');"
 />                                  
      </p:column>
</p:dataTable> 

<h:inputHidden id="update" value="#{updateBean.value}" />

<p:remoteCommand name="remoteCommand" process="update" 
        update=":pForm:activeTable"  >
<f:setPropertyActionListener value="#{stIter.Name}" 
        target="#{bean.methodName()}" />
</p:remoteCommand>

<p:commandButton value="save" onclick="check();" name="saves" >
</h:form>

我不知道你到底在做什么,但是在你的代码中,我认为你没有调用远程组件comand

另外,我猜oncompleteAttribute可能无法工作,因为它缺少一些东西,您可以尝试以下方法:
oncomplete=“javascript:init('flowScope.Str')

您还可以像
oncomplete=“javascript:somefunction('${bean.StringAttribute}')

我希望这会有帮助