Wicket 1.4のステートレスおよびステートフルページ

まず、何が危機にatしているのかを少し明確にします。 Wicketはセッションで最後に表示されたページを保存しますが、ページが非常に大きい場合、これが問題になることがあります。 これらの問題を回避するために、ステートレスページ(つまり、ステートレス)を作成することができます。

したがって、ステートレスページはステートレスページであり、ステートフルページはステートページです。



ステートレスページには状態が保存されないため、リクエストごとに保存する必要はありません。

そのようなページは、セッションまたはディスクに保存された訪問済みページの履歴のいずれにも保存されません。そのようなページには、ステートフルページの場合のようにバージョンが割り当てられません。 そのようなページへのすべてのリクエストで、そのコピーが再作成されます。



ページがステートレスになるには、次の2つの条件が満たされる必要があります。



これらの条件が満たされると、そのようなページは自動的にステートレスになります。 しかし、ステートレスではないコンポーネントが少なくとも1つページで使用されている場合、ページ全体がステートフルになり、セッションで、さらにディスク上の履歴で完全に実現および保存されます。



これらの2つの条件をより詳細に検討してみましょう。



ブックマーク可能なページとは 、このページにURLを自分で割り当てることができることを意味します。このURLにはセッションに関連する情報(ページのバージョンなど)が含まれません。

セッションがまだ開始されていない場合でも、ブラウザにアドレスを入力して直接開くことができます。

ページをブックマーク可能にするには、パラメーターを受け入れないコンストラクター、またはPageParameter



クラスの単一のパラメーターを受け入れるコンストラクターが必要です。

これらの条件を満たさないコンストラクターを使用してページが作成された場合、ページはブックマーク可能になりません。

ページがブックマーク可能になっていない場合、別のページから作成することによってのみアクセスできます。



コンポーネントがステートレスであるかステートフルであるかは、 コンポーネントがステートレスの場合はtrueを返し、そうでない場合はfalseを返すgetStatelessHint()メソッドを使用して決定されます。



次のコンポーネントはステートレスに属します。





次のコンポーネントはステートフルに属します。





重要:リンクとフォームはステートフルです。 StatelessLinkとStatelessFormは、これらのコンポーネントをステートレスページで使用するためのものです。



ソース:



cwiki.apache.org/WICKET/stateless-pages.html

cwiki.apache.org/WICKET/pages.html

cwiki.apache.org/WICKET/bookmarkable-pages-and-links.html

wicket.apache.org/apidocs/1.4

www.wicket-library.com/wicket-examples/compref



All Articles