3.5. バリデーション¶
項目
3.5.1. バリデーションを利用する¶
制約用途に指定した制約に適合するかどうかを確認する の設定を行っている場合、次のような実装を行うことでリクエストの パラメータに対してバリデーションを行うことができます。
3.5.1.1. JavaEE開発モデル¶
JSR 303 Bean Validationに準拠したカスタムバリデーションとして、辞書項目の制約に基づいたものを提供します。
@Dictionary(id=”xxx”) アノテーションを付与することにより、辞書項目に定義されている制約を適用することが可能です。
この例では SampleForm の foo に対して 0 から 100 までの範囲内であるという制約が適用されます。
package sample; import jp.co.intra_mart.foundation.repository.metadata.dictionary.validator.Dictionary; public class SampleForm { // 辞書項目IDをアノテーションに指定する // id = 辞書項目IDまたはエイリアスID、name = 項目名 @Dictionary(id = "sample-dictionary-item", name = "foo") private Long foo; }
3.5.1.2. スクリプト開発モデル¶
Jssp Validator のカスタムバリデーションとして、辞書項目の制約に基づいたものを提供します。
バリデーションルールのキーに dictionary を、値に辞書項目IDを指定することにより、辞書項目に定義されている制約を適用することが可能です。
この例ではリクエストパラメータの foo に対して 0 から 100 までの範囲内であるという制約が適用されます。
validation.js
var init = { 'foo': { // リクエストパラメータ名 caption: "CAP.Z.EXAMPLE.NAME", // エラーメッセージのキャプション dictionary: 'sample-dictionary-item' } }sample.js
let foo; /** * @validate validation#init * @onerror handleError */ function init(request) { foo = request.foo; } function handleError(request, validationErrors) { var param = { errors: validationErrors.getMessages() }; forward("error", param); }コラム
現在クライアント側のバリデーションを行うことはできません。