heppokoactの技術メモ
Wicket
最終更新:
heppokoact
-
view
Wicketのすばらしいところ
Wicket前夜
Servlet
- HTTPはステートレスなプロトコル。
- Servletはこれを処理するための、状態を持たない手続き。
- オブジェクト指向の利用が限定される。
- 状態の管理はSessionを使ってプログラマが行う必要がある。
- これは「ガベージ・コレクタ」を持たない環境における「メモリ管理」そのものだ。
Struts
- StrutsはServletのプログラミングを改善したが、手続きであるという点は変わらない。
- Servletの持つ上記の欠点は引き継がれている。
- 設定ファイルはオブジェクト指向ではない。拡張性も汎用性も再利用性もない。
- 修正内容が少しでも複雑になると、奇妙な迂回方法をとらねば対応できなくなる。
- プログラムの修正だけならすぐにすむものを。
Wicket
- ページをひとつのオブジェクトと考え、状態をWicketが管理する。
- 値の変更をバージョン管理する。
- セッションの古いデータをディスクに書き出す。
- リクエストに応じて状態を復元する。
- 不要になったデータは消去する。
- 動的な動作は全てプログラムで行う。
- 設定ファイルはweb.xmlのみ。
- 柔軟な設定が可能。
- IDEによるサポートが可能。
オブジェクト自身が自分のやるべきことを知っている
チェックボックスの初期値
- CheckBoxなりCheckGroupなりCheckBoxMultipleChoiceなりに初期値を取得するモデルを突っ込んでおけばよい。
- まあ、そうだろう。
チートシート
モデル
- Model
- PropertyModel
- ResourceModel
- StringResourceModel
- CompoundPropertyModel
- AbstractReadOnlyModel
- LoadableDetouchableModel
ラベル
- Label
- MultiLineLabel
リンク
- Link
- PageLink
- BookmarkablePageLink
- ExternalLink
- ResourceLink
- DownloadLink
- ImageMap
- SubmitLink
画像
- Image
繰り返し
- ListView
- PageableListView
- DataView
フォーム
- Form
- Button
選択
- DropDownChoice
- ListChoice
- ListMultipleChoice
- CheckBox
- CheckGroup
- CheckBoxMultipleChoice
- Radio
- RadioGroup
- RadioChoice
テキストフィールド
- TextField
- PasswordTextField
- HiddenField
- TextArea
- RequiredTextField
コンテナ
- WebMarkupContainer
- Panel
- Fragment
- Border
- FormComponentFeedbackBorder
ビヘイビア
- AttributeModifier
- SimpleAttributeModifier
- AttributeAppender
- HeaderContributor
リソース
- WebResource
- ContextRelativeResource
- DynamicWebResource
- BlobImageResource
- RenderdDynamicImageResource
- DefaultButtonImageResource
- BufferedDynamicImageResource
- PackageResource
- CompressedPackageResource
- JavaScriptPackageResource
- ByteArrayResource
- DynamicByteArrayResource
リソースストリーム
- StringBufferResourceStream
- 日本語の扱いに難あり
- StringResourceStream
- TextTemplate
- PackagedTextTemplate
- CssTemplate
- JavaScriptTemplate
- FileResourceStream
- PackageResourceStream
- UrlResourceStream
- WebExternalResourceStream
- XSLTResourceStream
- ZipResourceStream
- サブフォルダがあるとFileNotFoundException
Ajax
- AjaxButton
- AjaxFallbackButton
- AjaxLink
- AjaxSubmitLink
- AjaxFallbackLink
- AjaxCheckBox
- AjaxPagingNavigator