[Wicket-ja-user 475] ガラケーでWicket

Back to archive index

永瀬 泰一郎 t.nag****@gxp*****
2010年 10月 7日 (木) 15:59:08 JST


 自称Wicket/JPA/Guice職人のナガセヤスヒトです。

ガラケー向きのシステムをwicketでいくつか書いた事があるので、ガラケーで
wicketを使う際の注意点いくつか。

■auのチェックボックスに注意
auの端末はcheckboxのvalueを設定しないと、チェックをしてもしなくてもfalse
になります。
なぜかと言うとデフォルトでvalue="0"になってしまうんで
す。(Boolean.parseBoolean("0")はfalse)
http://d.hatena.ne.jp/m_norii/20080704/1215183224
なのでデフォルトでチェックボックスのvalueを"on"にする
IComponentInstantiationListenerを書きましょ う。

public class CheckBoxValueModifier implements
IComponentInstantiationListener {
@Override
public void onInstantiation(Component component) {
if (component instanceof CheckBox) {
component.add(new SimpleAttributeModifier("value", "on"));
}
}
}

こんな感じ。書いたらApplication.init()内で
this.addComponentInstantiationListener(new CheckBoxValueModifier());
のように書いてアプリケーションに登録します。


■文字列の実体参照に注意
wicketはoptionタグの内容を実体参照に変換します。
一部の端末(DoCoMoだったかな?)は実体参照を解決できないので、変換しないよ
うにしましょう。
public class EscapeModelStringsModifier implements
IComponentInstantiationListener {
@Override
public void onInstantiation(Component component) {
component.setEscapeModelStrings(false);
}
}

こんな感じ。


主には携帯を使う上での注意点はこんなところでしょうか。思い出したらまた書
きます。
ちなみに文字コードはutf-8で書いておけばよほど古い端末で無い限り動く(曖
昧・・・)のでフィルターとか用意しないでもwicketがよろ しくやってくれます。
またwicketにはstyleという概念があって、リソースを切り替える(ex.
index.html/index_mobile.htmlとか。この場合
Session.get().setStyle("mobile"))ことがで きます。
つまり、携帯用とPC用にhtmlを用意しておけばjavaのソースは1つでいいので管
理が楽ちんです。今回の要件にはないのかもしれませんが、

テストに関してはWicketTesterという仕組みがありますが、個人的には
wicket:idとかを手作業で打ってったりするのが面倒なの で自分は使ってませ
ん。シミュレーターをSeleniumでテストしてます。

認証周りはwicket-auth-rolesを使えばアノテーションで切り分けできるので楽
ですよー。
@AuthorizeInstantiation( { "ADMINISTRATOR", "MANAGER", "USER" })
@AuthorizeAction(action = "RENDER", deny = { "TRIAL" })
public class IndexPage extends WebPage {
}
みたいな。


取り急ぎぽぽぽと思いついたあたりを書いてみました。

それではー。




Wicket-ja-user メーリングリストの案内
Back to archive index