2011-02-04 14 views
7

私はJSF2とGlassFish、PrimeFaces 2.1を使用しています。この作品JSF PrimeFaces p:commandLinkは新しいページにリダイレクトされませんか?

は、showCreateProfile()メソッドはヒット取得し、メソッドの復帰「profileForm」とブラウザがそのページにリダイレクトします:

<h:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" /> 

しかし、これはshowCreateProfile()メソッドは、ヒットを取得し、機能しません。メソッドは "profileForm"を返しますが、ブラウザはページにリダイレクトしません。私は運がない3つの異なるものを試しました:

<p:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" /> 

<p:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" ajax="false" /> 

<p:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" ajax="false" immediate="true"/> 

私は間違って何をしていますか?

デフォルトでロブ

答えて

13

Primefaces' p:commandLink火災AJAX要求。これはHTTPレスポンス全体を返すのではなく、JSによってHTML DOMツリー内で更新されるべき部分的なHTTPレスポンスのみを返します。 ajax="false"属性によって

  1. 無効にAJAX:

    あなたは基本的に2つのオプションがあります。その後、通常のHTTP要求が発生します。

  2. update="clientid"属性で部分コンテンツを(同じページ上に)更新(再レンダリング)します。 rendered属性を使用して、コンテンツのレンダリングを制御できます。

どちらも問題がなければ、その問題は別の場所にあります。 h:commandLinkの動作とp:commandLinkのアクションメソッドも実行されるため、ajax="false"を試している間に実行していると思われるコードを実行していないことを意味します。確認、保存、再構築、再展開、再起動。

4

PrimeFacesは前方ベースのナビゲーションをサポートしていないため、Ajaxリクエスト内をナビゲートしたり、Ajaxをfalseに設定する場合は、転送の代わりにリダイレクトを使用する必要があります。

関連する問題