ユーザ定義のバリデーションを、RegexFieldを使わないで定義してみる。
ページ
public class Login extends Page {public Form form = new Form();
private TextField user = new TextField("user", "ユーザ名", true) {
public void validate() {
super.validate();if (error == null && !value.matches("\\p{Alpha}+"))
setError(getLabel() + "は半角英数字で入力してください。");
}
};private PasswordField passwd = new PasswordField("passwd", "パスワード", true) {
public void validate() {
super.validate();if (error == null && !value.matches("\\p{Alpha}+"))
setError(getLabel() + "は半角英数字で入力してください。");
}
};public Login() {
user.setMaxLength(8);
form.add(user);
passwd.setMaxLength(8);
form.add(passwd);
form.add(new Submit("login", "ログイン", this, "onLoginClick"));
form.add(new Reset("reset", "リセット"));
}public boolean onLoginClick() {
// 認証処理 return true;
}}