バリデーションを定義してみる

ユーザ定義のバリデーションを、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;
}

}

スクリーンショット


微妙かも。素直にRegexField使ったほうがいいか。
htmlファイルの方に直接定義できると便利だけどなー。