PrimeFaces commandButton не перемещается и не обновляется
Я использую Primfaces, чтобы сделать мое приложение немного красивее. Я заметил, что p:commandButton
и h:commandButton
работают не так.
p:commandButton
вызывает метод, и ничего больше не происходит. h:commandButton
вызывает метод и возвращает навигацию.
У меня возникли проблемы с перенаправлением после нажатия кнопки входа при использовании p:commandButton
. Как с этим бороться?
У меня есть параметр обновления:
<p:commandButton value="Login" action="#{login.login}" type="submit" update="msgs" />
Ответы
Ответ 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" />