チュートリアルの@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 コード雲を