開發web專案有時候我們需要對controller層傳過來的引數進行一些基本的校驗,比如非空,非null,整數值的範圍,字串的個數,日期,郵箱等等。最常見的就是我們直接寫**校驗,這樣以後比較繁瑣,而且不夠靈活。
bean validation 1.0(jsr-303)是乙個校驗規範,在spring boot專案由於自帶了hibernate validator 5(實現,所以我們可以非常方便的使用這個特性 。
核心的pom依賴:
org.hibernate
hibernate-validator
5.3.1.final
首先,需要我們宣告乙個bean,注入校驗器到spring boot的執行環境
@configuration
@enableautoconfiguration
public class factoryconfig
}校驗常用的註解如下:
@assertfalse 校驗false
@asserttrue 校驗true
@decimalmax(value=,inclusive=) 小於等於value,
inclusive=true,是小於等於
@decimalmin(value=,inclusive=) 與上類似
@max(value=) 小於等於value
@min(value=) 大於等於value
@notnull 檢查null
@past 檢查日期
@pattern(regex=,flag=) 正則
@size(min=, maxbzabrtio=) 字串,集合,map限制大小
@valid 對po實體類進行校驗
下面看乙個使用例子:
package hello;
import j**ax.validation.constraints.min;
import j**ax.validation.constraints.notnull;
import j**ax.validation.constraints.size;
public class bzabrtiopersonform
public void setname(string name)
public integer getage()
public void setage(integer age)
public string tostring()
}接著看下如何在controller層使用
//非實體類引數可以直接使用註解
@getma"/check")
@responsebody
public string check(@min(0,message = "kpid必須大於等於0") @requestparam int kpid,@req程式設計客棧uestparam int lwww.cppcns.comevel)
//實體類註解校驗使用@valid
@postmapping("/")
public string checkpersoninfo(@valid personform personform, bindingresult bindingresult)
return "redirect:/results";
}注意上面的spring提供的bindingresult是錯誤結果的乙個封裝,我們可以在web頁面中通過這個物件拿到詳細的錯誤資訊,
age error
本文標題: 詳解如何在spring boot專案使用引數校驗
本文位址:
如何在IDEA中建立Spring Boot專案
1.spring boot是spring家族中的乙個全新的框架,它用來簡化spring應用程式的建立和開發過程,也可以說spring boot能簡化我們之前採用springmvc spring mybatis框架進行開發的過程。2.在以往我們採用springmvc spring mybatis框架進...
如何在Spring Boot開啟事務
今天給大家介紹如何在spring boot中開啟事務,希望大家喜歡。說到事務,那什麼是事務呢?事務 transaction 一般是指要做的或所做的事情。那麼如何在spring boot中使用呢?其實只需要兩步即可 在service實現類的方法上新增 transactional註解。具體實現 pack...
如何在Springboot使用執行緒池(1)
如何在springboot使用執行緒池?方法1 注入執行緒池bean 寫乙個treadpoolconfig類,定義乙個方法,建立執行緒池物件 configuration public class treadpoolconfig 說明 bean註解可以作用在方法上,從而方法的返回值會作為bean,被s...