我們在做form表單送出的時候,隻在前端做資料校驗是不夠安全的,是以有時候我們需要在後端同樣做資料的校驗。好在springmvc在背景驗證給我們提供了一個比較好的支援。那就是使用valid接口的實作類做資料校驗。在這之前我們先做一下準備的工作。
我們先把需要的jar包添加進來。
接下來的第一 步我們需要寫一個類來實作validator接口。在這個類裡我們需要定義它支援校驗的javabean,實作validate方法,用來進行相關的校驗。具體的實作類如下:
我們需要在controller的類裡使用剛才寫的validtor的校驗實作類來進行表單資料的校驗。我們需要在controller裡用@initbinder注解把剛才的校驗類綁定到webdatabinder類裡。寫法如下:
接下來我們需要在@requestmapping這個注解所在的方法上使用@valid注解進行資料的校驗。
接下來我們來看一下效果:
請求:http://localhost:8081/testpersonalvalidtor.do
結果:
請求:http://localhost:8081/testpersonalvalidtor.do?name=張三&address=三元橋
具體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" %>
效果如下: