まず、何が危機にatしているのかを少し明確にします。 Wicketはセッションで最後に表示されたページを保存しますが、ページが非常に大きい場合、これが問題になることがあります。 これらの問題を回避するために、ステートレスページ(つまり、ステートレス)を作成することができます。
したがって、ステートレスページはステートレスページであり、ステートフルページはステートページです。
ステートレスページには状態が保存されないため、リクエストごとに保存する必要はありません。
そのようなページは、セッションまたはディスクに保存された訪問済みページの履歴のいずれにも保存されません。そのようなページには、ステートフルページの場合のようにバージョンが割り当てられません。 そのようなページへのすべてのリクエストで、そのコピーが再作成されます。
ページがステートレスになるには、次の2つの条件が満たされる必要があります。- まず、ページをブックマーク可能にする必要があります。
- ページはステートレスコンポーネントのみを使用する必要があります。
これらの条件が満たされると、そのようなページは自動的にステートレスになります。 しかし、ステートレスではないコンポーネントが少なくとも1つページで使用されている場合、ページ全体がステートフルになり、セッションで、さらにディスク上の履歴で完全に実現および保存されます。
これらの2つの条件をより詳細に検討してみましょう。ブックマーク可能なページとは 、このページにURLを自分で割り当てることができることを
意味します。このURLにはセッションに関連する情報(ページのバージョンなど)が含まれません。
セッションがまだ開始されていない場合でも、ブラウザにアドレスを入力して直接開くことができます。
ページをブックマーク可能にするには、パラメーターを受け入れないコンストラクター、または
PageParameter
クラスの単一のパラメーターを受け入れるコンストラクターが必要です。
これらの条件を満たさないコンストラクターを使用してページが作成された場合、ページはブックマーク可能になりません。
ページがブックマーク可能になっていない場合、別のページから作成することによってのみアクセスできます。
コンポーネントがステートレスであるかステートフルであるかは、
コンポーネントがステートレスの場合はtrueを返し、そうでない場合はfalseを返すgetStatelessHint()メソッドを使用して決定されます。
次のコンポーネントはステートレスに属します。
- ラベル、MultiLineLabel、EnumLabel
- パネル、ボーダー、BoxBorder、インクルード、TabbedPanel、FeedbackPanel
- BookmarkablePageLink、ExternalLink、ImageMap、StatelessLink
- ステートレスフォーム
- ボタン、SubmitLink
- TextField、PasswordTextField、TextArea、HiddenField、RequiredTextField、DateTextField
- CheckBoxMultipleChoice、CheckGroupSelector
- ListMultipleChoice
- Select、SelectOption、SelectOptions
- パレット
- DataGridView、DataTable、Tree、TreeTable、
- ListItem、ListView、Loop、PageableListView、PropertyListView
- PagingNavigation、PagingNavigator
- BaseTree、LabelTree、LinkTree
次のコンポーネントはステートフルに属します。
- リンク、ResourceLink
- 形
- CheckBox、CheckGroup、Check
- DropDownChoice、ListChoice
- ラジオ、RadioChoice、RadioGroup
- 画像ボタン
- PagingNavigationIncrementLink、PagingNavigationLink
- AJAXコンポーネント(ステートレスAJAXコンポーネントgithub.com/jolira/wicket-statelessを含むライブラリがあります)
重要:リンクとフォームはステートフルです。 StatelessLinkとStatelessFormは、これらのコンポーネントをステートレスページで使用するためのものです。
ソース:cwiki.apache.org/WICKET/stateless-pages.htmlcwiki.apache.org/WICKET/pages.htmlcwiki.apache.org/WICKET/bookmarkable-pages-and-links.htmlwicket.apache.org/apidocs/1.4www.wicket-library.com/wicket-examples/compref