Wicket In ActionのChapter5を読了した。
この章ではWicketの重要な概念のひとつ、Modelについてふかーく解説されています。
特に下記のModelについての詳しい解説がありました。
- PropertyModel
- CompoundPropertyModel
- BoundCompoundPropertyModel
- LoadableDetachableModel
PropertyModelからCompoundPropertyModelへとコードを修正するにしたがって、
コードが簡潔になっていく過程をみることができ、たいへん参考になります。
そして、Serializable Errorの解決策のひとつとして、LoadableDetachableModelが登場。
DBを絡めたときに、表示の度に値をとってくるような実装が必要かと思います。
そんなときはLoadableDetachableModelを使うことになると思いますので、この章は必見です。
PropertyModelやCompoundPropertyModelは属性値を文字列でとってきます。
例えばこんな感じ。
setModel(new CompoundPropertyModel(hogeBean));
add(new Label("hoge"));
これだけでhogeBeanにある hoge という属性値をとってきてくれるんで便利です。
ただ、属性の名前が変わった時等、このStringで指定されている部分についてはリファクタリング時に問題があります。
なので、私はPropertyModel系はあまり使ってないです。
その解の一つとしてBoundCompoundPropertyModelがあるんですけど、これも完璧な解とは言えないですし。
Wicket in Action Table of Contents
Part 1 Getting started with Wicket
1. What is Wicket?
2. The architecture of Wicket
3. Setting up a Wicket project
4. Building a cheesy Wicket application
Part 2 Getting a basic grip on Wicket
5. Understanding models
6. Using basic components
7. Using forms for data entry
8. Composing your pages
Part 3 Advanced Wicket
9. Creating custom components
10. Creating rich components
11. Authorization and authentication
12. Working with resources
13. Localization and internationalization
14. Database driven applications
15. Putting your Wicket application in production
16. Component index