菠蘿大象
用心思考,用心寫作
首頁
新隨筆
聯系
管理
隨筆-67 評論-522 文章-0 trackbacks-0
基于Spring MVC框架JSR-303的自定義注解Validator驗證實現
服務器端的數據驗證,對于一個
WEB
應用來說是非常重要的,而
Spring
從
3.0
開始支持
JSR-303
規范,
它定義了一些標準的驗證約束,同時也提供了一個可擴展的自定義方式來滿足不同的開發需要,大象以
SSM3
為基礎,結合實例來說明如何通過
Spring MVC
用自定義約束注解的方式來實現
Validator
驗證。
在實現功能之前,我們需要在
pom
文件里添加一些必須的依賴:
validation-api
是
JSR-303
規范的標準接口,
hibernate-validator
則是這套接口的一個實現,而
hibernate-validator
的實現里面又會用到
slf4j
,所以還需要加上這兩個
jar
包。有了這些,我們就可以在此基礎上實現自定義注解約束擴展了。
本篇還是以
SSM3
為基礎,以對角色名稱添加屏蔽詞為例來說明如何實現這些功能。
首先需要定義這樣一個屏蔽詞注解:
上面這個注解類,
message(),groups()
和
payload()
這三個方法是注解驗證的標準格式,
filed()
表示驗證的字段名稱,
{constraint.default.words.message}
是從
ValidationMessages.properties
資源文件中獲取的,這個文件的位置就在
resources
目錄下面。
現在定義了驗證接口,就需要有處理接口的實現,
WordsValidator.
class
就是用來處理這個的:
這里大象為了說明實現的方法,簡化了處理,實際開發中,可以改進一下,通過使用屏蔽詞庫對
value
值進行過濾。下面是一個測試類,對此注解進行一個簡單的測試。
現在定義好了注解,我們就可以使用它了。
RoleController
的
save
方法需要加入驗證以及錯誤處理:
頁面上想要顯示驗證的錯誤信息,最方便的就是直接使用
spring-webmvc
里的
org.springframework.web.servlet.view.freemarker
下
的
spring.ftl
文件,它里面定義了很多的宏命令,同時還可以添加自定義的宏命令:
role_edit.html
這個頁面的變動不大,主要就是四點,具體的可以查看源碼。
1
、引入并定義
<
#import "/common/spring.ftl" as spring/>
2
、在角色名
input
后面增加
<
label
class
=
"error"
for
=
"name"
style
="
display
:
none
;"
></
label
>
3
、然后加入
jquery.js
,用來解析
showErrors
中的腳本
4
、使用
<
@spring.showErrors/>
最后,要想讓這些功能都能正常的運行起來,需要改下
servlet-context.xml
文件
源碼下載:
ssm3_annotation
本文為菠蘿大象原創,如要轉載請注明出處。
http://m.tkk7.com/
bolo
posted on 2013-12-16 17:47
菠蘿大象
閱讀(17424)
評論(10)
編輯
收藏
所屬分類:
Spring3
評論:
#
re: 基于Spring MVC框架JSR-303的自定義注解validator驗證實現 2013-12-17 15:56 |
china obd2
很好很強大
回復
更多評論
#
re: 基于Spring MVC框架JSR-303的自定義注解validator驗證實現 2013-12-17 17:43 |
CoderDream
感謝分享!
SQL腳本有問題,user表少了一個password字段!
回復
更多評論
#
re: 基于Spring MVC框架JSR-303的自定義注解validator驗證實現 2013-12-17 18:01 |
菠蘿大象
@CoderDream
多謝兄臺指正,這個字段是多余的,我也不知道為什么就在里面,已經更新了下載包。
回復
更多評論
#
re: 基于Spring MVC框架JSR-303的自定義注解validator驗證實現 2013-12-18 11:35 |
鯉伴
專家 人才
回復
更多評論
#
re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現 2014-03-28 18:30 |
最代碼
我根據你的博客整理了一份代碼,下載地址:
http://www.zuidaima.com/share/1755786415246336.htm
回復
更多評論
#
re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現 2014-03-29 12:32 |
菠蘿大象
@最代碼
謝謝分享
回復
更多評論
#
re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現 2014-03-30 23:47 |
最代碼
@菠蘿大象
客氣
回復
更多評論
#
re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現 2014-04-08 16:31 |
王凱文
constraint.default.words.message={filed}\u6709\u5c4f\u853d\u8bcd
請問這是一種什么格式編碼阿?
回復
更多評論
#
re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現 2014-04-14 19:42 |
菠蘿大象
@王凱文
你需要裝個propedit插件
回復
更多評論
#
re: 基于Spring MVC框架JSR-303的自定義注解Validator驗證實現
2015-11-03 11:57 |
認真
非常感謝,貢獻源碼非常有用, 再次感謝!
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Quartz Spring與Spring Task總結
基于SSM3框架使用FreeMarker模板生成靜態頁的實現
基于Spring MVC框架JSR-303的自定義注解Validator驗證實現
基于Spring MVC框架的異常隱藏實現方法
解決Spring MVC框架靜態資源文件顯示問題
基于SSM3框架FreeMarker自定義指令(標簽)實現
Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解實例詳解(五)
Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解實例詳解(四)
Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解實例詳解(三)
Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解實例詳解(二)
<
2013年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
隨筆分類
(67)
Concurrency(3)
Database(4)
dom4j&jdom(3)
Eclipse(3)
Flex(4)
Hibernate(2)
Java(11)
jBPM(1)
jQuery(5)
Linux(1)
mybatis-generator(3)
Spring3(11)
Struts2(9)
隨筆(7)
隨筆檔案
(67)
2015年9月 (1)
2015年8月 (1)
2015年7月 (1)
2015年5月 (1)
2015年4月 (1)
2015年3月 (3)
2015年2月 (1)
2015年1月 (2)
2014年8月 (1)
2014年6月 (2)
2014年5月 (2)
2014年4月 (3)
2014年3月 (1)
2014年2月 (1)
2014年1月 (2)
2013年12月 (3)
2013年11月 (2)
2013年10月 (2)
2013年9月 (2)
2012年5月 (1)
2012年4月 (2)
2011年8月 (1)
2011年6月 (1)
2011年5月 (3)
2010年9月 (1)
2010年8月 (1)
2010年7月 (1)
2010年6月 (1)
2010年5月 (2)
2010年4月 (4)
2010年3月 (2)
2010年2月 (7)
2008年9月 (2)
2008年8月 (6)
搜索
積分與排名
積分 - 780959
排名 - 54
最新隨筆
1.?由Struts2Action代理和googlecode-jsonplugin產生的一個IllegalArgumentException異常問題
2.?在CentOS系統中同步時間
3.?全局唯一ID生成器淺析
4.?用Java實現MJD轉UTC
5.?修改mybatis-generator-1.3.2源碼實現自定義代碼生成詳解(三)
6.?修改mybatis-generator-1.3.2源碼實現自定義代碼生成詳解(二)
7.?修改mybatis-generator-1.3.2源碼實現自定義代碼生成詳解(一)
8.?Quartz Spring與Spring Task總結
9.?常用的MySQL復雜查詢語句寫法
10.?常用的MySQL語句寫法
11.?淺談Java兩種并發類型——計算密集型與IO密集型
12.?使用XStream注解實現Java對象與XML互相轉換的代碼示例
13.?淺談volatile變量的理解
14.?淺談Java共享變量
15.?m2eclipse安裝小貼士
最新評論
1.?re: 修改mybatis-generator-1.3.2源碼實現自定義代碼生成詳解(一)
評論內容較長,點擊標題查看
--半湖思絮
2.?re: 修改mybatis-generator-1.3.2源碼實現自定義代碼生成詳解(一)
評論內容較長,點擊標題查看
--菠蘿大象
3.?re: 修改mybatis-generator-1.3.2源碼實現自定義代碼生成詳解(一)
評論內容較長,點擊標題查看
--donghc
4.?re: 修改mybatis-generator-1.3.2源碼實現自定義代碼生成詳解(一)
@donghc
maven不是這樣玩的呀,我的run是打包后用的,你仔細看了第三篇的內容么?在IDE里直接啟動StartUp就行了,這個類是用來測試的
--菠蘿大象
5.?re: 修改mybatis-generator-1.3.2源碼實現自定義代碼生成詳解(一)
評論內容較長,點擊標題查看
--donghc
閱讀排行榜
1.?使用jackson對Java對象與JSON字符串相互轉換的一些總結(59337)
2.?在Eclipse中反編譯Class文件完全詳解(43598)
3.?Quartz Spring與Spring Task總結(38577)
4.?使用XStream注解實現Java對象與XML互相轉換的代碼示例(33140)
5.?Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解實例詳解(二)(32455)
評論排行榜
1.?Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(五)(69)
2.?Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(三)(47)
3.?Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(一)(35)
4.?Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解(二)(27)
5.?Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解實例詳解(三)(26)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 菠蘿大象
主站蜘蛛池模板:
一本色道久久综合亚洲精品
|
永久免费av无码网站大全
|
相泽亚洲一区中文字幕
|
特级做a爰片毛片免费看
|
四虎永久精品免费观看
|
亚洲AV无码一区二区三区鸳鸯影院
|
全免费一级午夜毛片
|
国产成人亚洲精品电影
|
亚洲 综合 国产 欧洲 丝袜
|
日韩免费码中文在线观看
|
亚洲成人国产精品
|
精品97国产免费人成视频
|
亚洲av片劲爆在线观看
|
最近2022中文字幕免费视频
|
亚洲欧洲日产国码二区首页
|
一个人在线观看视频免费
|
亚洲AV无码一区二区三区网址
|
国产精品免费看久久久无码
|
国产成人亚洲综合无
|
亚洲色偷偷偷鲁综合
|
在线观看免费视频资源
|
亚洲精品无码专区
|
久久久久亚洲av无码专区喷水
|
**俄罗斯毛片免费
|
爱情岛论坛亚洲品质自拍视频网站
|
亚洲成a人片在线观看日本麻豆
|
丁香花在线视频观看免费
|
国产精品二区三区免费播放心
|
亚洲综合男人的天堂色婷婷
|
国产又黄又爽又大的免费视频
|
亚洲电影免费在线观看
|
国产精品成人免费视频网站京东
|
亚洲AV成人片无码网站
|
亚洲精品成人片在线播放
|
噼里啪啦电影在线观看免费高清
|
免费播放国产性色生活片
|
日韩精品一区二区亚洲AV观看
|
青青草国产免费久久久91
|
18禁超污无遮挡无码免费网站
|
亚洲高清中文字幕免费
|
亚洲中文字幕无码一区二区三区
|