heppokoactの技術メモ Wicket


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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

参考文献