私はPrettyFacesでJSF 2を使用していますが、<h:link>
と<f:param>
タグも広くブックマーク可能なページを取得するために使用しています(JSFアプリケーションでこれらのPOST要求をすべて忘れてしまいました)。JSF ajaxリクエストでリフレッシュするURL
ただし、これらのリンクの一部はページの小さな部分のみを変更します(主にユーザーが同じビューにいるとき)。そのため、代わりにajaxリクエストを送信する方が効果的です。ただし、<f:ajax>
は<h:link>
と使用できません。ちょうど<h:commandlink>
です。私はコマンドリンクでも多くの方法でパラメータを送ることができますが、この場合、URLは要求後も同じままです。したがって、ページの内容と同期しなくなり、更新できません。
GETとajaxリクエストが混在するリンクを使用するサイト(ajaxでページを変更しているときに新しいURLを指す)を見たことがありますが、これまでのところ解決策は見つかりませんでした。
ajaxリクエストが完了した後(またはユーザーがクリックしたとき)、何らかの形でjsfでURLを更新できますか?または、いくつかの外部JSライブラリを使用する必要がありますか?
EDIT:ここで必要なJSライブラリは、新しいJavaScript履歴APIです。 More info. JSFはこのAPIを現在使用していないと思います。しかし、私はまだJSF開発者の視点からこの問題に興味があります。
JSFの今後のリリース予定ですか? <f:ajax>
と<h:link>
を組み合わせることは完璧な解決策になります。
私は数ヶ月前にOmniFacesを見ました。残念ながら、これは安価ではありません。非常に同じ変更されたURLは、単一のプレーンなGETリクエストによってポストバックによって実行されるすべてのAjax変更を含む、望ましいJSFビュー状態を正確に返すことができるはずです。アプリケーション全体(セッション非依存)の方法でこれを達成するために必要なすべての情報は、GET URLを非常に長くします。 URLを短縮する方法はありますが、それでも...コンポーネントライブラリの詳細を考慮していません。 – BalusC
ありがとうございます。私はそれを完全に理解していません。実際には、これはすでに行われています。これは、 ''は非Ajax GETリンクを生成するので、私はすでにこれを行っています。 - 私はすべて、代わりにajaxリクエストを送信し、以前に ''によって生成されたものにURLを設定することを望みます。それは ' 'でもよいし、何か他のものであってもかまいません。このように動作する必要があります。 –
apcuk
目的が純粋なページツーページナビゲーションである場合は、実際に実装する方が簡単です。しかし、 ''は一般的にナビゲーションだけでなく、他の多くの便利なものに使われています。 *その部分は些細なことではありません。 –
BalusC