web-dev-qa-db-ja.com

PrimeFaces commandButtonはナビゲートも更新もしません

Primefacesを使用して、アプリをもう少し美しくしています。 p:commandButtonh:commandButtonは同じようには機能しないことに気付きました。

p:commandButtonはメソッドを呼び出しますが、他には何も起こりません。 h:commandButtonはメソッドを呼び出し、ナビゲーションを返します。

p:commandButtonを使用しているときにログインボタンを押した後、リダイレクトに問題があります。どのように対処しますか?


更新パラメータがあります:

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

<p:commandButton>が正しく機能するには、次のいずれかが必要です。

  • 再レンダリングするコンポーネントのIDをリストするupdate属性(AJAXリクエスト用)
  • 属性ajax="false"通常の非ajax送信を行います。

どちらもない場合、ボタンはデフォルトでAJAXリクエストをUIフィードバックなしで行います。

さらに、周囲の<h:form>にはenctype属性がありました。

51

私はカガタイメントが何だったと思う:

ページをナビゲートするnot

<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>

詳細については、primefacesフォーラム、たとえば ナビゲーションに関するこの議論 をご覧ください。

私はそれが少し助けたことを願っています...

31
alfonx

ナビゲーションを実行していて、リクエストがajaxで行われている場合は、リダイレクトを使用する必要があります。

8
Cagatay Civici

私は同様の問題を抱えています。

Primefacesおよびprimefaces mobileを使用していますが、<p:commandButton>をajax = "false"およびaction = "find.xhtml?faces-redirect = true"で使用すると、Firefoxでナビゲーションが失敗します。

Firefoxでも動作させる唯一の方法は、<h:commandButton>を使用することです。

<h:commandButton value="#{msg.find}" process="find" 
                     action="find.xhtml?faces-redirect=true" />
4
zzirna
<h:commandButton 
                             styleClass="btn btn-primary-active upgrade" data-dismiss="modal" 
                             value="Upgrade Account" 
                             action="profile.do?faces-redirect=true&amp;tab=plan" 
                             oncomplete="$('#freeGiftModal').hide();" process="@this" partialSubmit="true" immediate="true"/>

コマンドボタンを使用してプロファイルページに移動しましたが、うまく機能しています。

0
Shehraz Khan

上記の解決策はどれもうまくいきませんでした。あなたはまだ簡単なjavascriptに行くことができます

<p:commandButton onclick="window.location.href =home.xhtml"
                    style="height: 20px" type="button" title="title" icon="ui-icon-transferthick-e-w"/>
0
Toumi