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”の文字列を除去したものになります。