菠蘿大象
用心思考,用心寫作
首頁
新隨筆
聯系
管理
隨筆-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://www.tkk7.com/
bolo
posted on 2013-12-16 17:47
菠蘿大象
閱讀(17422)
評論(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)
搜索
積分與排名
積分 - 780863
排名 - 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字符串相互轉換的一些總結(59335)
2.?在Eclipse中反編譯Class文件完全詳解(43597)
3.?Quartz Spring與Spring Task總結(38575)
4.?使用XStream注解實現Java對象與XML互相轉換的代碼示例(33138)
5.?Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解實例詳解(二)(32454)
評論排行榜
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 菠蘿大象
主站蜘蛛池模板:
国产亚洲综合视频
|
亚洲日本在线播放
|
中文字幕亚洲专区
|
91天堂素人精品系列全集亚洲
|
亚洲AV无码乱码麻豆精品国产
|
人人狠狠综合久久亚洲
|
大地影院MV在线观看视频免费
|
在线免费观看你懂的
|
午夜视频免费观看
|
中文字幕精品亚洲无线码一区应用
|
亚洲最新黄色网址
|
可以免费看的卡一卡二
|
亚洲午夜未满十八勿入网站2
|
在线观看亚洲AV日韩A∨
|
美女巨胸喷奶水视频www免费
|
999国内精品永久免费视频
|
国产亚洲自拍一区
|
免费国产成人18在线观看
|
亚洲乱码国产一区网址
|
亚洲高清有码中文字
|
67194成手机免费观看
|
国产亚洲无线码一区二区
|
亚洲AV无码之国产精品
|
亚洲成av人片一区二区三区
|
亚洲乱码无人区卡1卡2卡3
|
美女视频黄的全免费视频
|
亚洲精品精华液一区二区
|
18禁免费无码无遮挡不卡网站
|
亚洲国产精品日韩av不卡在线
|
婷婷亚洲天堂影院
|
国产精品亚洲一区二区三区
|
红杏亚洲影院一区二区三区
|
在线a免费观看最新网站
|
亚洲国产欧美日韩精品一区二区三区
|
免费不卡中文字幕在线
|
亚洲国产成人精品无码区二本
|
亚洲免费一区二区
|
男女超爽刺激视频免费播放
|
99久久精品国产免费
|
亚洲欧洲无码AV电影在线观看
|
6080午夜一级毛片免费看
|