JSFアプリケーションを使用していますが、ブラウザのナビゲーションバーに表示されるURLは、現在のページではなく、常に左のページのものであることがわかります。
3 に答える
これは、サーバーから別のページに転送される(リダイレクトされない)ためです。リダイレクトするには、リターンで次のパラメーターを設定する必要があります。
?faces-redirect=true
これは、コマンドリンク/コマンドボタンなどによるナビゲーションにPOSTを使用している場合に発生します。それが純粋なページ間ナビゲーションであり、実際にサーバーに何も送信する必要がない場合は、より大きな問題が発生します。あなたは確かにまさにこの厄介な「副作用」を得るでしょう、そしてあなたのリンクはブックマーク可能でも検索ボットクロール可能でもありません。PRG(Post-Redirect-Get)は、他の回答で示唆されているように、ブックマーク可能性(「1URL遅れ」)の問題を確かに解決しますが、検索ボットがページをクロール/インデックス付けできないことは確かに解決しません。
そもそも、単純なページ間ナビゲーションにPOSTを使用しないでください。そのためにGETを使用します。<h:link>
などの代わりに使用<h:commandLink>
します。コードで、すべてを置き換えます
<h:form>
<h:commandLink value="Next page" action="nextpage" />
</h:form>
に
<h:link value="Next page" outcome="nextpage" />
参照:
デフォルトでは、JSFは元のページのURLに向けられたPOST操作を実行します。を使用する場合は、ブラウザに追加のリクエストを実行させるように<navigation-rule>
指定できるため、ターゲットページのURLがナビゲーションバーに表示されます。<redirect/>