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

Comment

  1. Saxman
    2008-07-09 Wed 02:52

    >画像であればImageコンポーネントやResourceLinkコンポーネントを使う方法。
    この方法しか知りませんでした。

    >RequestTargetに直接リソースを設定する方法。
    この方法は確かに使えそうですけど、ある意味なんでもこい?なのでMIMEタイプがあるものなら上記の方がWicketらしい気もしますね。

    カテゴリ一覧ってListViewで普通のアンカーとして作ってたのですね。
    HTMLではliタグとかがお勧めかな。
    単純にliタグで一覧を出力し、StyleSheetで先頭のポチを画像にしちゃうって言う方法です。

  2. tma
    2008-07-09 Wed 06:24

    >単純にliタグで一覧を出力し、StyleSheetで先頭のポチを画像にしちゃうって言う方法です。
    へー、そっちの方がエレガントですね!
    確かにHTMLが冗長な気がしてたんですよねー
    マークアップは標準に準拠するようには心がけてたんですが、CSSとか使って簡潔にする技術がまだまだなんで、ためになりました!