菠蘿大象
用心思考,用心寫作
首頁
新隨筆
聯系
管理
隨筆-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
菠蘿大象
閱讀(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)
搜索
積分與排名
積分 - 780934
排名 - 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文件完全詳解(43597)
3.?Quartz Spring與Spring Task總結(38577)
4.?使用XStream注解實現Java對象與XML互相轉換的代碼示例(33139)
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 菠蘿大象
主站蜘蛛池模板:
亚洲www在线观看
|
国产性爱在线观看亚洲黄色一级片
|
69视频在线观看免费
|
十八禁视频在线观看免费无码无遮挡骂过
|
日韩免费高清大片在线
|
国产成人无码免费看片软件
|
免费看又黄又爽又猛的视频软件
|
国产成人亚洲精品91专区高清
|
亚洲国产精品成人久久
|
国产亚洲人成无码网在线观看
|
国产亚洲?V无码?V男人的天堂
|
亚洲午夜无码久久久久
|
国产亚洲A∨片在线观看
|
亚洲高清国产AV拍精品青青草原
|
国产亚洲综合网曝门系列
|
亚洲AV永久纯肉无码精品动漫
|
毛片免费在线播放
|
成年女人视频网站免费m
|
特级淫片国产免费高清视频
|
免费亚洲视频在线观看
|
亚洲精品第一国产综合精品99
|
亚洲国产91精品无码专区
|
亚洲毛片不卡av在线播放一区
|
亚洲日韩精品一区二区三区无码
|
免费精品国偷自产在线在线
|
久久久精品视频免费观看
|
久久精品免费观看
|
最近中文字幕免费2019
|
大地资源在线观看免费高清
|
国产高清在线精品免费软件
|
亚洲毛片av日韩av无码
|
亚洲五月激情综合图片区
|
亚洲综合色区中文字幕
|
蜜臀亚洲AV无码精品国产午夜.
|
日韩免费高清一级毛片
|
中文字幕在线免费看线人
|
3d动漫精品啪啪一区二区免费
|
成年性羞羞视频免费观看无限
|
亚洲AV日韩精品一区二区三区
|
久久精品夜色国产亚洲av
|
国产婷婷综合丁香亚洲欧洲
|