Wicket In Action Chapter11読了


Wicket社内勉強会2日目も昨日無事終わりました。
参加者には色々質問してもらえ、Wicketに少しでも興味を持ってもらえたようでなによりでした。

さてさて、Wicket In ActionのChapter11を読了しました。
この章は、Ajaxについて説明されています。
標準のAjaxコンポーネントの使い方から、仕組み、カスタムコンポーネントの作り方まで、Ajaxを使う上で必要な知識が網羅されてます。

このBlogもAjaxは全然使ってないですし、他でもAjaxを使う経験がなかったので新鮮でした。
Ajaxコンポーネントの存在は知ってたのですが、AbstractAjaxBehaviorを使うことで、結構簡単にAjaxを体験できるのは驚きでした。

下のコードは単純なLabelコンポーネントにAjaxSelfUpdatingTimerBehaviorを追加してAjax化した例です。
モデルの方で出力する文字列を制御するようにして、0.5秒毎に表示する文字列を切り替えてます。
 public class HelloWicket extends WebPage {
     public HelloWicket() {
         Label label = new Label("text", new EmojiModel());
         add(label);
         label.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(0.5)));
     }

     private static class EmojiModel extends AbstractReadOnlyModel {
         private int count = 0;
         private String[] emoji = new String[]{
                 "ε=ε=ε=ε\(*`∧´)/ ムッキー!!ε=┏(゚ロ゚;)┛ダ゙ッ!!",
                 "\(*`∧´)/ ムッキー!!ε=ε=┏(゚ロ゚;)┛ダダ゙ッ!!",
                 "\(*`∧´)/ ムッキー!!ε=ε=ε┏(゚ロ゚;)┛ダタダッ!!",
                 "\(*`∧´)/ ムッキー!!ε=ε=ε=ε=┏(゚ロ゚;)┛ダダダ゙ダッ!!",
                         "\(*`∧´)/ ムッキー!!ε=ε=ε=ε=ε=┏(゚ロ゚;)┛ダダダダッ!!"};
        
         @Override
         public Object getObject() {
             if (count >= emoji.length)
                 count = 0;
             return emoji[count++];
         }
     }
 }

Ajax系のコンポーネントはwicket-stuffにも結構あるし、Ajaxをお手軽に体験するという点でもWicketはお薦めですね。
そのうちこのBlogもAjaxをもうちょっと取り入れていこうかと思います。

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