jsf отличается между ajax = true и ajax = false - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть страница JSF. Фреймворк PrimeFaces. Слои строятся как верхняя панель, боковая панель, основной макет Боковая панель и верхняя панель содержат меню. Оба меню находятся в <form>:

<p:commandLink action="#{bean.modify}" ajax="false">
    <span>Modify</span>
</p:commandLink>

Основной макет также содержит форму кнопок в другой форме. Кнопка содержит диалог подтверждения):

<p:commandLink id="close" action="#{bean.close}" ajax="false" update="form">
    <span>Close</span>
    <p:confirm header="Lezárás" message="Are you sure close it?" icon="ui-icon-alert"/>
</p:commandLink>

Если я использую ajax = true, просто нажав на кнопку в основном макете, подтвердите, что диалог не появляется. Если я использую ajax = false, появится подтверждение, но страница на короткое время сломается. Сначала страница будет отображаться без форматирования CSS, а затем CSS будет проверен.

Почему это может быть? В чем разница между семью звонками? В одном случае, почему это делает рендеринг, а в другом - почему не подтверждается DialogDialogs?

Обновление:

Я прочитал ссылку, но до сих пор не понимаю, почему она работает. Возможно, я написал проблему неправильно.

Существует страница JSF: list.xhtml. Это команда Link

<p:commandLink action="#{bean.modify}" ajax="false">
        <span>Modify</span>
</p:commandLink>

Фасоль:

public String modify(){
   return "edit.xhtml";
}

В файле edit.xhtml есть кнопка с названием verifyDialog:

<p:commandLink id="close" action="#{bean.close}" ajax="false" update="form">
    <span>Close</span>
    <p:confirm header="Lezárás" message="Are you sure close it?" icon="ui-icon-alert"/>
</p:commandLink>

Если я вызываю edit.html с list.xhtm с ajax = true, тогда verifyDialog работает, но страница медленно рендерится.

Если я назову ajax = false, то рендеринг будет быстрым, но подтверждение - диалог не работает.

Я не понимаю, потому что это другая страница, поэтому обновляется не только ее часть, но и вся страница

1 Ответ

0 голосов
/ 14 ноября 2018

решаемые

В PrimeFaces была ошибка.

https://github.com/primefaces/primefaces/commit/9f86efba16ead70f9db1194744d291a7f64acefb

Я исправил ошибку в исходном коде версии 6.2 и с тех пор работает хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...