Подтвердить что ты не робот

PrimeFaces commandButton не перемещается и не обновляется

Я использую Primfaces, чтобы сделать мое приложение немного красивее. Я заметил, что p:commandButton и h:commandButton работают не так.

p:commandButton вызывает метод, и ничего больше не происходит. h:commandButton вызывает метод и возвращает навигацию.

У меня возникли проблемы с перенаправлением после нажатия кнопки входа при использовании p:commandButton. Как с этим бороться?


У меня есть параметр обновления:

<p:commandButton value="Login" action="#{login.login}" type="submit" update="msgs" />
4b9b3361

Ответ 1

<p:commandButton> для правильной работы требуется одно из следующих действий:

  • атрибут update для отображения идентификатора компонентов для повторной обработки (для запросов AJAX)
  • атрибут ajax="false", чтобы сделать обычный, не-ajax submit.

Если у вас их нет, кнопка по умолчанию выполняет запрос AJAX без обратной связи с интерфейсом.

Кроме того, у меня были проблемы, когда ни один параметр не работал, когда у окружающего <h:form> был атрибут enctype.

Ответ 2

Я думаю, что Cagatay был:

Переместится ли не на страницу:

<p:commandButton action="home.xhtml" value="Go Home"/>

Работает (перенаправляет страницу):

<p:commandButton action="home.xhtml?faces-redirect=true" value="Go Home"/>

Работает (перенаправляет страницу)

<p:commandButton action="home?faces-redirect=true" value="Go Home"/>

если .xhtml - это ваш постфикс по умолчанию, определенный в web.xml:

<context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>

Более подробную информацию можно найти в форуме по разделам, например, в в этом обсуждении о навигации

Надеюсь, это немного помогло...

Ответ 3

Вы должны использовать перенаправление, если вы выполняете навигацию, а запрос выполняется с помощью ajax.

Ответ 4

У меня такая же проблема.

Я использую простые и ориентированные графики, а в Firefox Firefox не работает <p:commandButton> с ajax = "false" и action = "find.xhtml? faces-redirect = true".

Единственный способ заставить его работать и в Firefox - это использовать <h:commandButton>:

<h:commandButton value="#{msg.find}" process="find" 
                     action="find.xhtml?faces-redirect=true" />