6 1 1 驗證註解的使用

2022-03-03 00:00:05 字數 2235 閱讀 7904

資料註解特性定義在命名空間system.componentmodel.dataannotations 中(但接下來

將看到,有些特性不是定義在這個命名空間中)。它們提供了伺服器端驗證的功能,當在模

型的屬性上使用這些特性之一時,框架也支援客戶端驗證。在命名空間dataannotations 中,

有4 個特性可以用來應對一般的驗證場合。下面從required 特性開始對它們逐一介紹。

1.required 必須字段

[required]

public

string firstname

[required]

public

string lastname

2.stringlength 字元長度

[required]

[stringlength(

160)]

public

string firstname

[required]

[stringlength(

160)]

public

string lastname

[required]

[stringlength(

160, minimumlength=3

)]public

string firstname

3.regularexpression

[regularexpression(@"

[a-za-z0-9._%+-]+@[a-za-z0-9.-]+\.[a-za-z]")]

public

string email

4.range

range 特性用來指定數值型別值的最小值和最大值。

[range(35,44

)]public

int age

該特性的第乙個引數設定的是最小值,第二個引數設定的是最大值,這兩個值也包含

在範圍之內。range 特性既可用於int 型別,也可用於double 型別。它的建構函式的另外

乙個過載版本中有乙個type 型別的引數和兩個字串(這樣就可以給date 屬性和decimal

屬性新增範圍限制了)。

[range(typeof(decimal), "

0.00

", "

49.99")]

public

decimal price

5. system.web.mvc 下的驗證特性

asp.net mvc框架還為應用程式在命名空間system.web.mvc 中額外新增了兩個驗證

特性。其中乙個是remote 特性。remote 特性允許利用伺服器端的**函式執行客戶端的

驗證邏輯。以mvc music store 中registermodel 類的username 屬性為例,系統中不允許

兩個使用者具有相同的username 值,但是在客戶端很難驗證以確保username 屬性值的唯

一性(除非把所有的使用者名稱都從資料庫傳送到客戶端)。使用remote 特性可以把username

的值傳到伺服器,然後在伺服器端的資料庫中與相應的表字段值進行比較:

[remote("

checkusername

", "

account")]

public

string username

在特性中可以設定客戶端**要呼叫的控制器名稱和操作名稱。客戶端**將自動把

使用者輸入的username 屬性值傳送到伺服器,該特性的乙個過載構造方法還允許指定要發

送給伺服器的其他字段:

public jsonresult checkusername(string

username)

[regularexpression(@"

[a-za-z0-9._%+-]+@[a-za-z0-9.-]+\.[a-za-z]")]

public

string email

[compare(

"email")]

public

string emailconfirm

是由於資料註解的可擴充套件性,才導致了remote 和compare 特性的存在。本章後面部分將會講解如何建立自定義註解。下面介紹如何在驗證失敗時建立自定義的錯誤提示訊息。

spring 常用註解驗證

null 被注釋的元素必須為null notnull 被注釋的元素不能為null asserttrue 被注釋的元素必須為true assertfalse 被注釋的元素必須為false min value 被注釋的元素必須是乙個數字,其值必須大於等於指定的最小值 max value 被注釋的元素必須...

Thymeleaf 表單 驗證註解

thymeleaf 表單 驗證註解 jsr提供的校驗註解 null 被注釋的元素必須為 null notnull 被注釋的元素必須不為 null asserttrue 被注釋的元素必須為 true assertfalse 被注釋的元素必須為 false min value 被注釋的元素必須是乙個數字...

SpringBoot註解驗證引數

註解 作用型別 解釋 notnull 任何型別 屬性不能為null notempty 集合集合不能為null,且size大於0 notblank 字串 字元 字元類不能為null,且去掉空格之後長度大於0 asserttrue boolean boolean 布林屬性必須是true min 數字型別...