天天看點

SpringMVC使用@Valid注解進行資料驗證

我們在做form表單送出的時候,隻在前端做資料校驗是不夠安全的,是以有時候我們需要在後端同樣做資料的校驗。好在springmvc在背景驗證給我們提供了一個比較好的支援。那就是使用valid接口的實作類做資料校驗。在這之前我們先做一下準備的工作。

我們先把需要的jar包添加進來。

接下來的第一 步我們需要寫一個類來實作validator接口。在這個類裡我們需要定義它支援校驗的javabean,實作validate方法,用來進行相關的校驗。具體的實作類如下:

我們需要在controller的類裡使用剛才寫的validtor的校驗實作類來進行表單資料的校驗。我們需要在controller裡用@initbinder注解把剛才的校驗類綁定到webdatabinder類裡。寫法如下:

接下來我們需要在@requestmapping這個注解所在的方法上使用@valid注解進行資料的校驗。

接下來我們來看一下效果:

請求:http://localhost:8081/testpersonalvalidtor.do

結果:

SpringMVC使用@Valid注解進行資料驗證

請求:http://localhost:8081/testpersonalvalidtor.do?name=張三&address=三元橋

SpringMVC使用@Valid注解進行資料驗證

具體controller類代碼如下:

personscope實體類:

這裡需要注意的是:@valid要緊挨着javabean(即personscope),要不然不會生效的。

另外需要注意的是:這裡的校驗是哪個請求需要校驗,就寫在哪個請求上。如果需要配置全局的校驗的話,可以在<mvc:annotation-driven/>中配置validator。寫法如下:

上面的錯誤資訊的展示是我們自己來展示的錯誤資訊,但是springmvc還給我們提供了一個<form:errors />标簽來展示錯誤資訊。例子如下:

jsp頁面内容如下:

注意:<form:errors />标簽是springmvc提供的,是以我們得引入這個标簽庫。<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

效果如下:

SpringMVC使用@Valid注解進行資料驗證