春の検証

序文

チェックデータは、インタラクティブなウェブサイトの本質的な機能で、ユーザ名などの検証の責任の大部分をカバーすることができ、フロントjsのチェックがユニークな、誕生日の形式、およびので、一般的に使用されるメールボックス形式チェックチェックです。しかし、ブラウザバイパス、直接バックエンドへの不正ツールのデータの数のHTTPリクエストを使用するようにユーザーを避けるために、サーバー側のデータ検証は、ダーティデータは、データベースに陥る防ぐために、必要でも、違法なメールボックスデータベース形式の表示された場合運用・保守担当者に頭痛を作ります。私より厳格な要件と変動性と効率性の追求のための保険商品の開発プロセス、データ検証システムの前に、検証機能を務めDroolsのルールエンジンとして使用されています。一般的なアプリケーションでは、本明細書中で使用することができる、あなたは、データ検証チェックに導入されます。
春の検証との関係について簡単にJSR303 / JSR-349休止状態の検証。JSR303が標準で、JSR-349には、@ヌル、@ NOTNULL、@パターンとしていくつかの新機能、彼らは注釈されている検証仕様をご確認の規定の一部を、追加、彼らはjavax.validation.constraintsパッケージに位置し、それのアップグレード版でありますのみで実装を提供していない仕様を提供します。休止状態の検証は、この仕様の実践(休止状態とリンクされたデータベースのORMフレームワークはありません)で、彼は、対応する実装を提供し、そして、そのような@メールなど、いくつかの追加チェック・ノート、長さ@、レンジ@などが追加されます彼らはorg.hibernate.validator.constraintsパッケージの下に位置しています。そして、春には、開発者にユニバーサル利便性を提供するために、第2のパッケージ休止状態の検証に行われ、検証ディスプレイ検証Beanは、あなたが春を使用するか、検証の検証、検証とspringmvcモジュールがある別のバネ特性を、休止することができます自動キャリブレーションを加え、キャリブレーション情報は、特定のクラスにカプセル化されます。これは、当社のWeb開発に間違いなく便利です。本論文では、springmvcメカニズムで自動チェックについて説明します。
依存性の導入
私たちは、実証するmavenのビルドspringbootデモアプリケーションを使用します。

<依存性>
<依存性>
<のgroupId> org.springframework.boot </のgroupId>
<たartifactId>ばねブートスタータウェブ</たartifactId>
</依存>
</依存関係>

私たちは依存彼の息子は、以下に依存して見つけることができるかどうかを確認するために、頼りにすることができ、スプリングブート・スターター・ウェブを導入する必要があります。

<依存性>
<のgroupId> org.hibernate </のgroupId>
<たartifactId>休止状態、バリ</たartifactId>
</依存>

<依存性>
<のgroupId> com.fasterxml.jackson.core </のgroupId>
<たartifactId>ジャクソン・データバインド</たartifactId>
</依存関係>

私は前に説明した検証、Webモジュールの用途は、検証を休止し、データバインドモジュールは、対応するデータバインディング提供します。
スタートアップクラスの構築
追加のメモを追加する必要はありません、一般的な起動クラス

@SpringBootApplication
パブリッククラスValidateApp {
パブリック静的無効メイン(文字列[] args){
SpringApplication.run(ValidateApp.class、引数)。
}
}

エンティティクラスを作成することを検証する必要があります

Fooクラス{公共
@NotBlank
プライベート文字列名;

@Min(18)と
プライベート整数年齢、

@Pattern(正規表現= "^ 1(3 | 4 | 5 | 7 | 8)9 \\ {D} $。。。。。。。"、メッセージ= "電話番号のフォーマットエラー「)
@NotBlank(メッセージ=」電話番号は空にすることはできません「)
プライベート文字列電話;

@email(メッセージ=」メール形式エラー「)
プライベート文字列のメール;
//ゲッターセッター...

}

、特別なチェックノートのより一般的な用途のいくつかは、それは非常に簡単に理解することであり、チェックが失敗したときに各コメントの内容を確認推測するフィールドの名前にコメントはメッセージのメッセージフィールドが含まれていますこのようなパターン(定期点検)などのチェック注釈は、あなたはまた、独自の正規表現を追加することができます。
チェックデータ@Controllerで


 

次のように私たちは、一般的な追加パラメータ検証コントローラパラメータを形成するための図springmvc自動包装機能が提供されます。

@Controller
パブリッククラスFooController {

@RequestMapping( "/ foo"という)
パブリック文字列のfoo(@ValidatedはFoo fooの<1>、BindingResult bindingResult <2>){
IF(bindingResult.hasErrors()){
(FieldError fieldError用:bindingResult.getFieldErrors ()){
// ...
}
リターンは"不合格"。
}
「成功」を返します。
}

}

注目すべき:
<1> @Validatedパラメータは注釈のFoo、その春の検証の必要性を追加する必要がある前に、チェック情報は、後続のBindingResultに保存されます。検証するために複数のパラメータがある場合は、次のように、フォームをすることができ、あなたが隣接していなければならない、ということに注意してください。FOO(検証済みバーバー、BindingResult barBindingResult @ @ValidatedはFoo fooという、BindingResult fooBindingResult、);すなわち、パリティチェックの結果に対応するクラス。
<2>自動チェック結果で充填され、コントローラは、サービスロジックに応じて、エラーページへのジャンプとして、特定の操作で決定することができます。
基本的なチェックが完了し、検証の枠組みの下で提供されたものを要約します。
JSR申し出は、注意事項を確認してください。
@Null注釈付き要素がnullでなければなりません
@NotNull注釈付き要素がnullであってはなりません
@AssertTrue注釈付き要素が真でなければなりません
@AssertFalse注釈付き要素はfalseでなければなりません
@Min(値)は、要素は、その値が指定された最小値より大きくなければならない数で注釈を付けなければなりません
@max(値)は、要素が少なく、指定さに等しい最大値よりなければならない数で注釈を付けなければなりません
@DecimalMin(値)は、要素は、その値が指定された最小値より大きくなければならない数で注釈を付けなければなりません
@DecimalMax(値)は、要素が少なく、指定さに等しい最大値よりなければならない数で注釈を付けなければなりません
@size(MAX =、分=)指定された範囲内に注釈されるべき要素のサイズ
@Digits(整数、分数)の注釈付き要素値許容範囲内でなければならない数でなければなりません
注釈付き要素@Past過去の日付でなければなりません
@future注釈付き要素は、将来の日付でなければなりません
@Pattern(正規表現=、フラグ=)注釈付き要素が指定された正規表現に一致する必要があります
Hibernateバリは、検証のアノテーションを提供します。
@NotBlank(メッセージ=)認証文字列がヌルではなく、長さが0より大きくなければなりません。
注釈付き要素は、電子メールアドレスでなければなりません@email
文字列のサイズ内@Length(MIN =、maxは=)指定された範囲内に注釈を付けなければなりません
@NotEmpty注釈付きの文字列がnullであってはなりません
@Range(MIN =、最大=、メッセージ=)要素は、適切な範囲内に注釈を付けなければなりません



チェック実験

私たちは、上記の行為にテスト要求を達成するための入り口を確認してください。
ログインにhttp:// localhost:8080 / fooという名= xujingfeng&Eメール= 000&年齢= 19以下のデバッグ情報を取得することができます?:


 

実験は、役割を果たした結果を確認し、教えてくれる。そして、複数のエラーが発生したときに最初にエラーが発生した後、春の検証はすぐに停止しません見つけましたが、試行錯誤を続け、私たちのすべて間違っを伝えることができます。デバッグは、春の利便あり、より豊富なエラー情報を表示することができます検証はほとんどのシーンのための基本的なを提供してくれています。
发布了604 篇原创文章 · 获赞 8 · 访问量 1万+

おすすめ

転載: blog.csdn.net/xiaoyaGrace/article/details/104292004