導航:首頁 > 編程語言 > jsr303spring

jsr303spring

發布時間:2025-01-04 05:36:27

㈠ SpringMVC的參數校驗以及@Valid相關註解的使用和自定義

SpringMVC的基本參數校驗涉及使用`@RequestParam`註解來控制請求參數。在編寫控制層介面時,對前端或介面訪問者的參數進行校驗,可以避免代碼重復,減少資源浪費和提升代碼的美觀度。通過使用`@RequestParam`,當訪問介面時沒有傳遞該參數,SpringMVC會拋出異常,此時可以使用全局錯誤處理機制進行統一捕獲和處理。例如,可以聲明參數類型為引用類型,如`Long`,這樣該參數就不是必須的。

`@RequestParam`註解具有幾個可用屬性,包括`name`(指定參數名稱,默認為介面定義時的參數名,但可通過該屬性覆蓋重命名),`required`(默認為`true`,表示參數為必傳,若為`false`則該參數可選),`defaultValue`(當參數未傳遞時提供默認值)。

在SpringMVC中,可藉助jsR-303驗證框架實現參數的校驗。Spring Boot默認使用Hibernate validator進行驗證,只需在方法參數上使用`@Valid`註解,Spring Boot將自動對參數對象進行校驗,並將校驗結果存儲在`BindingResult`對象中。

JSR-303定義了一系列註解用於驗證Bean屬性,如`@Null`、`@NotNull`、`@NotBlank`、`@NotEmpty`、`@Size`(支持字元串、集合)以及數值校驗註解如`@Min`、`@Max`、`@Digits`和`@Range`。對於字元串類型,使用`@Email`驗證是否為郵件格式,`@Pattern`則用於驗證字元串是否符合正則表達式規則。

在實現驗證時,需要在類欄位上標注對應的控制註解,然後在請求參數處標注`@Valid`聲明參數需要校驗。框架將把校驗結果放在`BindingResult`對象中,該對象包含了所有驗證結果。通過`hasErrors`方法判斷驗證是否通過,`getAllErrors`方法獲取所有錯誤信息,通常返回`FieldError`列表。若未聲明`BindingResult`參數,SpringMVC將拋出異常,此時可以採用全局異常處理。

對於介面參數內部引用其他對象的校驗,只需在引用欄位上添加`@Valid`註解,框架將自動對內部對象執行校驗。若需要根據不同介面定製校驗規則,可以使用`@Validate`註解來分組校驗,通過新建介面用於分組並配置所屬的組。例如,在實體類中創建介面用於分組,每個校驗註解配置所屬的組,介面定義處使用`@Validate`註解並指定需要的介面分組。

另外,實現自定義校驗註解,如校驗貨物庫存是否低於最小值。自定義註解格式與普通註解相似,指定驗證規則,如庫存不能低於`{min}`個。通過實現`@Constraint`註解來說明需要哪個類來驗證註解,定義`message`屬性用於創建錯誤信息,`groups`屬性指定驗證規則分組,`payload`屬性定義驗證的有效負載。最後,創建一個驗證類來實現註解驗證邏輯。

㈡ Spring JSR303驗證,為什麼在頁面上使用 form:error顯示不了錯誤信息

說明你對jsr的自定義類型轉化器ConversionService沒有了解,你雖然model裡面已經添加了jsp中的modelAttribute的模型,但是你modelAttribute中的名字沒有對應你的PortalUser類中的名字,應該jsp中modelAttribute=「」portalUser「」,你就可以解決你的問題
備註:在jsp中的modelAttribute必須要modelAttribute="POJO類名小寫",原理和springmvc.xml中配置conversionService 的默認bean一樣意思

㈢ SpringBoot JSR-303 + AOP 自定義註解校驗參數

SpringBoot OAuth2.0集成簡訊驗證碼登錄機制,提供安全的授權認證方式。

實現這一功能,確保傳入的參數合法性至關重要。JSR-303和AOP技術的結合,為參數校驗提供了強大支持。

引入AOP機制,通過配置參數為空校驗,確保簡訊介面的參數完整。簡訊發送過程由AOP切面控制,優化了程序處理邏輯。

啟動服務並測試,通過訪問指定URL驗證簡訊發送功能,如訪問`localhost:7000/api/v1/sms/send?phone=&type=sms_login`。

自定義註解`ValueIn`的創建,對特定欄位進行約束,實現更加靈活的校驗邏輯。使用`SmsCodeEnum`枚舉類定義簡訊類型,進一步豐富功能。

重新啟動服務並進行測試,確保所有功能按預期運行。

源碼地址:[江景/moose],歡迎訪問查看實現細節。

閱讀全文

與jsr303spring相關的資料

熱點內容
怎樣把舊的文檔保存到桌面文件夾 瀏覽:827
wps雲數據如何恢復 瀏覽:496
微信發送過來文件 瀏覽:300
怎麼改合同網站 瀏覽:73
網路鬥地主記牌器怎麼實現的 瀏覽:377
ps鏡像文件製作教程 瀏覽:45
系統分頁文件大小設置多少 瀏覽:447
win10有線無法上網 瀏覽:339
wps無法訪問指定文件 瀏覽:96
iphone4震動壞了 瀏覽:217
安卓隨機數軟體rand 瀏覽:356
CNC編程如何掌握公差 瀏覽:297
linux搭建php環境 瀏覽:514
星形網路怎麼表示有故障 瀏覽:719
dbf文件c語言處理excel 瀏覽:138
金蝶kis支持win10嗎 瀏覽:113
常州採集物聯網大數據平台有哪些 瀏覽:950
win10休眠文件改到d盤 瀏覽:626
如何編程手機app軟體 瀏覽:656
node獲取文件名 瀏覽:367

友情鏈接