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