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

Source: https://habr.com/ru/post/J143346/


All Articles