|
一般情況下,用戶的輸入是隨意的,為了保證數(shù)據(jù)的合法性,數(shù)據(jù)驗(yàn)證是所有 Web 應(yīng)用必須處理的問(wèn)題。 Spring MVC 有以下兩種方法可以驗(yàn)證輸入: 利用 Spring 自帶的驗(yàn)證框架 利用 JSR 303 實(shí)現(xiàn) 數(shù)據(jù)驗(yàn)證分為客戶端驗(yàn)證和服務(wù)器端驗(yàn)證,客戶端驗(yàn)證主要是過(guò)濾正常用戶的誤操作,通過(guò) JavaScript 代碼完成。服務(wù)器端驗(yàn)證是整個(gè)應(yīng)用阻止非法數(shù)據(jù)的最后防線,通過(guò)在應(yīng)用中編程實(shí)現(xiàn)。 本節(jié)使用 JSR 303 實(shí)現(xiàn)服務(wù)器端的數(shù)據(jù)驗(yàn)證。 JSR 303 是 Java 為 Bean 數(shù)據(jù)合法性校驗(yàn)所提供的標(biāo)準(zhǔn)框架。JSR 303 通過(guò)在 Bean 屬性上標(biāo)注類似于 @NotNull、@Max 等標(biāo)準(zhǔn)的注解指定校驗(yàn)規(guī)則,并通過(guò)標(biāo)準(zhǔn)的驗(yàn)證接口對(duì) Bean 進(jìn)行驗(yàn)證??梢酝ㄟ^(guò) https:///en/jsr/detail?id=303 查看詳細(xì)內(nèi)容并下載 JSR 303 Bean Validation。 JSR 303 不需要編寫驗(yàn)證器,它定義了一套可標(biāo)注在成員變量、屬性方法上的校驗(yàn)注解,如下表所示。
Spring MVC 支持 JSR 303 標(biāo)準(zhǔn)的校驗(yàn)框架,Spring 的 DataBinder 在進(jìn)行數(shù)據(jù)綁定時(shí),可同時(shí)調(diào)用校驗(yàn)框架來(lái)完成數(shù)據(jù)校驗(yàn)工作,非常簡(jiǎn)單方便。在 Spring MVC 中,可以直接通過(guò)注解驅(qū)動(dòng)的方式來(lái)進(jìn)行數(shù)據(jù)校驗(yàn)。 Spring 本身沒(méi)有提供 JSR 303 的實(shí)現(xiàn),Hibernate Validator 實(shí)現(xiàn)了 JSR 303.所以必須在項(xiàng)目中加入來(lái)自 Hibernate Validator 庫(kù)的 jar 文件,下載地址為 http:///validator/。本節(jié)使用版本為 hibernate-validator-5.1.0.Final-dist.zip,復(fù)制其中的 3 個(gè) jar 文件即可,Spring 將會(huì)自動(dòng)加載并裝配。 hibernate-validator-5.1.0.Final.jar jboss-logging-3.1.0.CR2.jar validation-api-1.0.0.GA.jar |
|
|
來(lái)自: 碼農(nóng)9527 > 《Java》