Client Validator

ふと帰り道に5・14までに何か形にしたデモをと思いましたが業務の絡みでどうなるかな(T-T)

入力チェックを非同期にAjaxでバリデーション。

ValidatorはもちろんPOJOでdicon管理します。

1文字入力ごとにチェックしたり、onblurでチェックしたり。

イメージとしては開発者は3ステップと言ってみたり。

  1. Ajaxの戻り処理関数を定義
  2. Validatorを定義
  3. diconに登録

こんな感じのHTMLがあって

<span id="message" class="ng"></span>
<input type="text" name="hoge" 
  onblur="Kumu.ajax.executeTeedaAjax(lengthValidator_validator, {'value',this.value});"/>

Ajaxの戻り処理関数を定義

<script language="javascript">
function lengthValidator_validator(response){
    $i("message").innerHTML = response;
}
</script>

Validatorを定義

public class LengthValidator {
    private String value;

    public void setValue(String value) {
        this.value = value;
    }
    
    public String validate() {
        if (this.value.length() < 3) {
            return "3文字以上入力して下さい。";
        } else {
            return "";
        }
    }
}

diconに登録

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
	"http://www.seasar.org/dtd/components24.dtd">
<components>
	<component name="lengthValidator" class="LengthValidator" instance="request">
	    <meta name="teeda-ajax"/>
	</component>
</components>

なイメージ。

っても大したコードを書くわけではないので土曜の夜にやれば間に合うかな?