RemoteCommand от Primeface — есть способ выполнить один раз?

Праймфейс 3.5 JSF 2.1

Я использую p:remoteCommand для выполнения асинхронных команд и обновления своего представления после загрузки страницы, но смотрю, что в конце каждой итерации он выполняется снова и так далее...

Правильно ли это поведение?

Как выполнить команду p:remoteCommand только один раз?

обновить

Я проверил, что мой remoteCommand был за пределами панели обновления, поэтому спасибо за ответы, но это уже было в порядке. Как я решаю свою проблему:

Я не знаю почему, но использую onloadScript из Omnifaces (http://showcase.omnifaces.org/components/onloadScript) для вызова функции remoteCommand она вызывается много раз, но при использовании $(document).ready ... только один раз. Итак, я изменил его, и он заработал прямо сейчас.


person andolffer.joseph    schedule 01.06.2014    source источник
comment
Можете ли вы предоставить фрагмент кода, который вы пробовали?   -  person Pankaj Kathiriya    schedule 01.06.2014
comment
Вы как бы обновляете родительский компонент до своего ‹p:remoteCommand›. Поместите его за пределы компонента, который вы хотите обновить.   -  person Aksel Willgert    schedule 01.06.2014
comment
@AkselWillgert, я сейчас не на своей рабочей станции, но твой ответ выглядит нормально! Попробуйте использовать функцию ответа, а не комментарий, чтобы я мог проверить ее правильность при проверке! Большое спасибо!   -  person andolffer.joseph    schedule 01.06.2014


Ответы (2)


Если вы попадаете в поведение, похожее на бесконечный цикл, вы, вероятно, обновляете родительский компонент до своего <p:remoteCommand>.

<h:form id="myform">
    <p:remoteCommand update="myform" actionListener="#{remoteCommandView.execute}" />
    ...
</h:form>

Поместите его снаружи/рядом с компонентом, который вы хотите обновить, и все должно быть в порядке.

<h:form id="newform">
<p:remoteCommand update="myform" actionListener="#{remoteCommandView.execute}" />
</h:form>
<h:form id="myform">
...
</h:form>
person Aksel Willgert    schedule 01.06.2014
comment
Думаю, я исправил это. - person Aksel Willgert; 30.08.2016
comment
Рад слышать..могильщик ;-) - person sinclair; 30.08.2016
comment
Хе-хе, кто-то зло проголосовал за это, и, насколько я помню, ответ должен решить проблему :) - person Aksel Willgert; 30.08.2016
comment
Что ж, кто-то проголосовал за это сейчас, так как теперь это действительно правильно ... Честно говоря, хорошо поддерживать старые вопросы! - person sinclair; 30.08.2016

Используйте p:remoteCommand в отдельной форме.
Используйте process="@this" и partialSubmit="true", просто на всякий случай.

person Kishor Prakash    schedule 02.06.2014