Wicket In Action Chapter10読了
この暑いさなかWii Fitを汗だくになってやってるんで、ちょっと更新が滞ってましたが、Wicket In Action Chapter10読了しました。
この章は、イメージファイルやPDF等のリソースをWicketで扱う方法が書かれています。
自分としてはリソースはあまりわかっていなかったので、大変参考になりました。
業務チックなところでは、CSVの出力なんかにも関わってくるところです。
リソースを扱う方法は大きく分けると以下の3つの方法になります。
- 画像であればImageコンポーネントやResourceLinkコンポーネントを使う方法。
- Applicationクラスで管理するSharedResourceを用いる方法。
- RequestTargetに直接リソースを設定する方法。
試しにこのBlogの横っちょにある「カテゴリ一覧」にImageコンポーネントを使ってアイコンをつけてみました。
「カテゴリ一覧」はListViewを使って実装しています。populateItemメソッド内に以下を追加します。
protected void populateItem(final ListItem categoryItem) {
categoryItem.add(new Image("icon", new ResourceReference(CategorySummary.class, "icon.png")));
CategorySummaryクラスと同じパッケージ内にicon.pngというファイル名でイメージファイルを置いておけば、イメージが表示されます。ちなみにHTMLはこんな感じ
<span wicket:id="categorySummaryList" class="categorySummary">
<img wicket:id="icon" src="icon.png" /> <a href="#" class= "categorySummary" wicket:id="categoryLink"><span wicket:id="category">category</span></a><br />
</span>
この辺りの知識は、リソースを扱うPanel等を作るときには重要になりそうですね。
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. Working with Wicket resources
11. Rich components and Ajax
12. Authentication and authorization
13. Localization
14. Multi-tiered architecture
15. Putting your application in production
16. Component index
2008-07-09 Wed 02:52
>画像であればImageコンポーネントやResourceLinkコンポーネントを使う方法。
この方法しか知りませんでした。
>RequestTargetに直接リソースを設定する方法。
この方法は確かに使えそうですけど、ある意味なんでもこい?なのでMIMEタイプがあるものなら上記の方がWicketらしい気もしますね。
カテゴリ一覧ってListViewで普通のアンカーとして作ってたのですね。
HTMLではliタグとかがお勧めかな。
単純にliタグで一覧を出力し、StyleSheetで先頭のポチを画像にしちゃうって言う方法です。
2008-07-09 Wed 06:24
>単純にliタグで一覧を出力し、StyleSheetで先頭のポチを画像にしちゃうって言う方法です。
へー、そっちの方がエレガントですね!
確かにHTMLが冗長な気がしてたんですよねー
マークアップは標準に準拠するようには心がけてたんですが、CSSとか使って簡潔にする技術がまだまだなんで、ためになりました!