au端末のcheckboxに注意
auの端末はinputタグのtypeがcheckboxの場合にvalueを指定しないとデフォルトで0が送信されます。
Wicketはこれをfalseとして解釈してしまうので、明示的に値を設定するListenerを書きました。
package net.nagaseyasuhito.sandbox.listener; import org.apache.wicket.Component; import org.apache.wicket.application.IComponentInstantiationListener; import org.apache.wicket.behavior.SimpleAttributeModifier; import org.apache.wicket.markup.html.form.CheckBox; public class CheckBoxValueModifier implements IComponentInstantiationListener { private String value; public CheckBoxValueModifier(String value) { this.value = value; } @Override public void onInstantiation(Component component) { if (component instanceof CheckBox) { component.add(new SimpleAttributeModifier("value", this.value)); } } }
WebApplication#init()内で、
this.addComponentInstantiationListener(new CheckBoxValueModifier("on"));
と書けばauの端末でも問題なく動作するようになります。