@ParamsValidate 3コレクション、複雑なキャリブレーションパラメータ

チュートリアルの@ParamsValidateシリーズ  https://blog.csdn.net/u010606397/article/category/7689866

偽:まず、その「要求」を認識し

A House.java、ハウスは、ウィンドウがクラスで、プロパティウィンドウを持っています。次のとおりです。

public class House{
    private Double area;
    private String houseName;
    private Window window;

     省略get、set

    static class Window{
        private Integer windowHeight;
        private Integer windowWidth;

        省略get、set
    }
}

次のような要件は以下のとおりです。

1、ウィンドウのNULL可能

2、ウィンドウが空ではない、windowHeightは空にすることはできません。

次のようにこの要件を達成するために、検証ルールを書くことができます。

"house": {
    "houseName": {
        "request": true,
        "maxLength": 10,
        "message": "房间名称不能多于10字符"
    },
    "window":{
        "request": false,
        "windowHeight":{
            "request": true,
            "minValue": 1,
            "maxValue": 1000,
            "regex": "^(\\+)?\\d+(\\.\\d+)?$",
            "message": "高度必须是数字"
        },
        "windowWidth":{
            "minValue": 1,
            "maxValue": 1000,
            "regex": "^(\\+)?\\d+(\\.\\d+)?$",
            "message": "宽度必须是数字"
        }
    }
}

「要求」へのウィンドウの追加、余分なキーの値を注意:ウィンドウを表し偽は、空でもよいです。

属性ののparams-検証マルチレベルの検証ルールとして定義されます。

子供の要求があります:偽:本当の親の祖先レベルが要求を持っていない限り、親の祖先レベルは、空にすることはできません。

すべての子どもたちが何の要求もない:本当の、そして親は空にすることができます。

私は、検証ルールのいくつかの例を示しています。

"ハウス":{
    "houseName":{
        "リクエスト":trueに、
        "maxLengthの":10、
        "メッセージ": "部屋の名前を超えない10の文字"
    }、
    "ウィンドウが":{
        //リクエストがウィンドウのプロパティを持っていwindowHeight :真、必要とされるwindowHeight発現し、ウィンドウは、必ずしも空でない
        "windowHeightを":{
            "リクエスト":真、  
            "のminValue":1、
            "maxValueの":1000、
            "正規表現":?「^(\\ +)\ \ D +(D + \\ \\。)$ "?
            "メッセージ":"高さは数値でなければなりません"
        }、
        " windowWidth "{
            "のminValue ":1、
            " maxValueの「:1000、
            "REGEX": "?? ^(\\ +)\\ D +(+ \\ \\ D。)$"、
            "メッセージ": "幅は数値でなければなりません"
        }
    }
}

"ハウス":{
    "houseName":{
        "リクエスト":trueに、
        "maxLengthの":10、
        "メッセージ": "これ以上10文字以内の部屋の名前が"
    }、
    "窓":{ //ウィンドウの"要求"を持っていません。ウィンドウが空である可能性があることを示す偽、。"要求":falseに、           "windowHeight":{             "要求":trueに、               "のminValue" :. 1、             "maxValueの":1000、             "REGEX":?「^(\\ +)+ D \\(\\ \\。 ?D +)$ "             "メッセージ":"高さ"は数値でなければならない         }、         ":{" windowWidth             "のminValue「:1、
       
       














    }
}

"ハウス":{
    "houseName":{
        "リクエスト":trueに、
        "maxLengthの":10、
        "メッセージ": "これ以上10文字以内の部屋の名前"
    }、
    "窓":{
       //子ウィンドウが何も要求されていません:いいえ子供必須、つまり、真。もちろん、あなたは少し空のウィンドウすることができ
        、{: "windowHeight"
            "のminValue" :. 1、
            "maxValueの":1000、
            "REGEX": "?^(\\ +)\\ D +(D + \\ \\。)$?"、
            "メッセージ": "高さは数値でなければなりません"
        }、
        "windowWidth" {
            "のminValue" :. 1、
            "maxValueの":1000、
            "REGEX": "



キー要求を追加することにより、豆又は場合のマッピングに対応する値である場合:×Beanが実装されてもよいが、必要なチェックをマッピングします。

第二には、コレクションをチェック

> -コレクション、新しいキーを使用する必要性を確認のelemを。

簡単なチェックコレクション

次のような要件は以下のとおりです。

1、hobbyList最大長3

図2に示すように、要素は、デジタルだけ必要とされるhobbyList

バリデーションルールは次のようになります。

    "hobbyList":{
        "maxLength": 3,
        "elem":{
            "request":true,
            "maxValue": 200,
            "regex": "^\\d+$",
            "message": "0或正整数"
        }
    },

コレクション型は、リクエスト、maxLenth、はminLengthチェック、maxValueの、のminValue、正規表現のチェックをサポートしていませんがサポートされています。

ELEMは、コレクション内の要素を表しています。

それを追加します:唯一のリクエストパラメータを、検証ルールは、キーJSONファイルと@ParamsValidateパラメータキーとして直接使用することができます。図によって例示しました。

リクエストパラメータは、コレクション<コレクション<文字列>>、コレクションまたはコレクションの要素である場合には、検証ルールはそう書かれるべき

"XXkey":{
    .....
    "elem":{
        ....
        "elem": {
            ....
        }
    }
}

コレクション要素がオブジェクトであります

Cate.javaは次の通り:

public class Cate {
    private String cateName;
    private Integer money;

    省略get、set
}

一覧<ケイト>を確認する必要があり、検証ルールを記述することができます。

        "cateList":{
            "maxLength": 3,
            "elem": {
                "cateName": {
                    "request":true,
                    "maxLength": 40,
                    "regex": "^[\\u4e00-\\u9fa5a-zA-Z-z0-9]+$",
                    "message": "字母数字中文"
                },
                "money": {
                    "request":true,
                    "maxValue": 4,
                    "regex": "^\\d+$",
                    "message": "数字"
                }
            }
        }

 

チュートリアルのコード   https://github.com/CodingSoldier/test-params-validate

プロジェクトアドレスのparams -検証    のGitHub    コード雲を  

 

公開された51元の記事 ウォン称賛14 ビュー40000 +

おすすめ

転載: blog.csdn.net/u010606397/article/details/86583558