目前springboot專案 引數驗證非空使用的@RequestParam(required=true)
但是經過測驗發現,該引數在前端傳空字串時仍然會通過,只有不傳時才會報引數錯誤
但是由于之前對該注解理解有誤(認為前端傳空字串也會報引數錯誤),導致專案里已大量使用該注解來做非空驗證
請問在不更改之前原始碼,或者不自行AOP去處理的前提下,有沒有更好的方法(如spring全域配置)去修改該注解的默認行為,讓其攔截掉空字串值(包括不傳與傳空字串)的請求
謝謝
uj5u.com熱心網友回復:
好像沒有好的辦法,或許是我不知道。。。倒是試過在實際的操作前,使用類似下面的代碼做引數驗證,回傳呼叫方比較明確的提示資訊!
if (StringUtils.isAnyBlank(itemId, applyName, cardId, contactName, phoneNum))
{
return InvokeResult.bys("itemId, applyName, cardId, contactName, phoneNum 等不能為空");
}
uj5u.com熱心網友回復:
這樣的寫法感覺有點丑陋,今天剛發現這個問題,也沒想明白spring為什么要這么處理,感覺在http中,只判斷引數存不存在并沒有多大的意義目前只能aop去切入了
uj5u.com熱心網友回復:
你說的對哎,要是能aop全域處理最好了。習慣了,我現在每次對springboot代碼get和post引數都做空校驗的,控制類的代碼基本上都是校驗
uj5u.com熱心網友回復:
要不用 JSR-303或JSR-349做輸入驗證uj5u.com熱心網友回復:
這樣會大量修改現有代碼 就比較麻煩了 最侄訓是aop切了uj5u.com熱心網友回復:
最侄訓是切了uj5u.com熱心網友回復:
Spring中HandlerMethodArgumentResolver是用于處理Controller引數的介面,可以花點時間,自己設計一個@RequestParam類似的注解轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/22657.html
標籤:Web 開發
