導航:首頁 > 編程語言 > 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相關的資料

熱點內容
ps文件去污漬 瀏覽:289
轎車導航下載導航文件要多少錢 瀏覽:755
華為隱藏設置密碼 瀏覽:847
qt版本選擇 瀏覽:478
word中表格頁邊距 瀏覽:440
android內存分析工具 瀏覽:140
兒童編程有哪些課程 瀏覽:969
vb編程都有哪些類型 瀏覽:806
網路爬蟲壞處 瀏覽:409
電腦上加密的文件復制到移動硬碟後如何解密 瀏覽:359
win10計算機附件在哪裡 瀏覽:512
7歲學編程是學些什麼東西 瀏覽:353
win8是win10嗎 瀏覽:107
怎麼用電腦編程mc 瀏覽:148
跨國郵寄文件多少錢 瀏覽:455
linuxmpich2安裝 瀏覽:192
蘋果專賣店官網旗艦店 瀏覽:353
iphone4安裝支付寶失敗 瀏覽:837
快手app加好友怎麼添加 瀏覽:60
微信刪除幾年的文件能找回嗎 瀏覽:904

友情鏈接