intra-mart Accel Kaiden! / プログラミングガイド

第2版 2014-08-01

«  4.2.3.4. ヘルパー(Helper)   ::   コンテンツ   ::   4.2.3.6. マネージャ(Manager)  »

4.2.3.5. バリデーション

intra-mart Accel Kaiden! でのサーバサイドバリデーションについて、
バリデータクラスの作成、バリデータクラスの実行をそれぞれ解説します。

4.2.3.5.1. バリデータ(validator)の作成

バリデータのサンプルを掲載します。
package jp.co.slcs.kaiden2.base.foundation.util.validate;

import java.util.List;
import java.util.Map;
import jp.co.slcs.kaiden2.base.foundation.conf.BaseProp;
import jp.co.slcs.kaiden2.base.foundation.util.CollectionUtil;
import jp.co.slcs.kaiden2.base.foundation.util.StringUtil;

/**
 * XXXチェックバリデータ.
 */
public class XxxValidator extends KaidenAbstractValidator implements KaidenValidatorIF {
    
    /** バリデートエラー時のデフォルトメッセージキー . */
    private static final String DEFAULT_ERROR_MESSAGE_KEY = BaseProp.M.XXXX;
    
    /**
     * コンストラクタ.
     */
    public XxxValidator() {
        super();
    }
    
    /**
     * 判定処理.
     */
    public boolean isValid(Object value) {
        // チェック処理を実装します。
        // チェックOKの場合はtrue,NGの場合はfalseを返却します。
        return true;
    }
    
    /**
     * valueMapから指定されたfieldKeyを取得し、チェックを行います。<br>
     */
    @Override
    public KaidenValidateResult executeValidate(Map<String, Object> valueMap, String fieldKey, String[] args,
            Map<String, String> surfaces) {
        
        inputCheck(valueMap);
        
        Object value = valueMap.get(fieldKey);
        
        KaidenValidateResult result = super.makeNewValidateResult(fieldKey, surfaces, StringUtil.toString(value));
        
        // 判定処理
        if (!isValid(value)) {
            setErrorDetail(result, DEFAULT_ERROR_MESSAGE_KEY);
        }
        
        return result;
    }
    
}

4.2.3.5.1.1. 解説

jp.co.slcs.kaiden2.base.foundation.util.validate.KaidenValidatorIFによってexecuteValidateメソッドの実装が強制されており、
このメソッドがコールされることでバリデーションが実施されます。

結果をバリデート実行結果オブジェクトにセットし、返却します。

コラム

intra-mart Accel Kaiden! 標準では、バリデータクラスはdiconファイルに設定していますが本項では割愛します。

4.2.3.5.2. バリデーション実行

上記で作成したバリデータクラスを使用してバリデーションを行う実装方法を解説します。
        // 検証対象データMap
        Map<String, Object> dataMap = new HashMap<String, Object>();
        dataMap.put("companyCd", "");
        // エラーメッセージ用サーフェスMap
        Map<String, String> surfaceMap = new HashMap<String, String>();
        surfaceMap.put("companyCd", "会社コード");
        
        // サーバサイドバリデート実行クラス
        KaidenValidateExecutor validateExecutor = new KaidenValidateExecutor(dataMap, surfaceMap);
        // バリデート定義を追加
        validateExecutor.addValidateDef("companyCd", "xxx");
        
        // バリデート実行
        List<KaidenValidateResult> validateResult = validateExecutor.executeAll();

4.2.3.5.2.1. 解説

validateExecutor.addValidateDef(“companyCd”, “xxx”); で、チェック対象のフィールドキーとバリデーションIDを指定します。

コラム

バリデーションIDはdiconファイルに設定したコンポーネント名から”Validator”の文字列を除去したものになります。

«  4.2.3.4. ヘルパー(Helper)   ::   コンテンツ   ::   4.2.3.6. マネージャ(Manager)  »