Wicket勉強会に参加しました
TwitterのTL取得ページを自分用に作った程度ですが、二年連続二回目の出席をキメました。バージョン1.3メインで使っていた(いる?)人なので、もう1.5が出るのかーっといったところです。
1.5になると矢野さんのWicket本の1/3が意味なくなるらしい…。
Wicket1.5の新機能 @t_yanoさん
- WebRequestCycleが消えた
- steps(), step()も消えた
- RequestTargetという概念が消えた→IRequestHandlerで代替
- UrlCodingStrategy→IRequestMappterで代替
- リクエストのサイクル
IRequestHandler ↑ ↓ -------------------- IRequestMapper -------------------- ↑ ↓ Request Url
- RequestHandlerを使えればWicketの世界に入っていける
- RequestHandlerStack: リクエスト処理の中心でRequestHandlerをスタックとして扱う
Urlマウント
- mountBookmarkablePageが消え、代わりにmountPageになった。
- ${}で変数をUrlに埋め込めるようになった
/mountpath/${year}/ StringValue year = parameter.get("year")
-
- 現状はページのみ。リソースの場合はインデックスで取れる
/user/t_yano/image/ parameter.get(0) //user parameter.get(1) //t_yano
コンポーネントの初期化と設定
最終的な表示処理は誰のもの? @hayasshさん
こんなときどうするか
- 住所を一行で表示
- 郵便番号はXXX-XXXX
- 郵便番号と住所は半角スペースひとつあける
- 郵便番号にハイフンを入れる、半角スペースあけで表示するというのは表示側の都合
上記の処理をWicketのどの部分でやるか??
- Component部分でやるか
- 再利用性が高くなる
- 拡張性も保たれる
- テスタビリティが低い
- WicketTesterを使用しなければいけない
- Comverterでやるか
- Componentよりテスタビリティが高い
- 変換処理だけ考えるので責務がはっきりする
- Stringへの変換しかしない
- Nullの場合にConverterが適用されない
- ViewHelperでやるか
- テスタビリティが高い
- 概念が理解されやすい
- CompoundPropertyModelと相性がいい
- 再利用性・拡張性が悪い
入力があればConverter。表示するだけならModelでなんとかする?再利用単位はコンポーネントがいい?
まとめ
- Componentで行えば再利用性が高まる?
- ただし、ViewHelperはJUnitでテストができる
タイトル未定 @tetsuyasさん
- 大学の教員をやっている
- Shuugi.in - shuugi.in 予測市場 選挙・政治予測/経済・投資予測 というサービスを作成している
Shuugi.inサイトでの事例
- 更新すべきパネルをもち回している。
- OAuth
- Twitter
- Twitter4j
- はてな
- oauth-signpostを利用
- OAuthConsumer,OAuthProviderをもち回す
- Twitter
- ModalWindow内でのページ遷移
Wicket1.3から1.4へのマイグレーション時にハマった事 @gishi_yamaさん
- 大学の教員をやっている
- 学内のシステムをWicketで開発
工数
- 300クラス/3.2万ステップ
- 社内SE2人でコード修正、確認など…80H
マイグレーションで注意
changelogとかWicketTesterを使いこなせば…
PropertyModelクラスがオブジェクトのフィールド変数を取得する仕組みについて ravicotさん
アクセサがないのにどう取得しているのか?
- リフレクションを使っていた
- 動的にアクセサを使用していた
- PropertyResolver.getValueを使用している
- フィールドを取得してアクセサがなければアクセサ作成を試みる!
Wicket:idを利用しないテンプレートとの対応付け @madogiwaさん
警告を消すには…
- xmllnを追加する
- wicket:idを使わなければいいじゃない!
どうする
- フィルターを拡張する
- フィルターを有効にする
- 具体的には……Wicketのコンポーネント追加先指定にHTMLのID属性を利用可能にするライブラリを作成してみた - まどぎわBLOG
- 何か意外と簡単にできるらしい…これはやってみたいかも
WicketとFlexの連携 @chimerastさん
F→W
- AbstractDefaultBehavior#renderHead()をオーバライドしjs関数を追加
- Flexから追加した関数を呼び出す
テキストエンコーディング
- F→js
- 特に問題なし
- js→W
- endodeURIComponent()
感想とか二次会とか
大学時代に作ったWicketの遺産が発掘されたので、これ、1.5にあげてみたいと思うなど。何かLTのネタでもできるようにWicketを使っていきたい。
その後の二次会では主にPHPとかWindowsとかOfficeがディスられてました。また、今回はATNDでのアテンドなのに出席率がめちゃめちゃ良かったとの事でした。
最後に
長い時間受付をして下さったyoshioteradaさん、会場を提供して下さった日本オラクルさんありがとうございました!