菠蘿大象
用心思考,用心寫作
首頁
新隨筆
聯系
管理
隨筆-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)
搜索
積分與排名
積分 - 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 菠蘿大象
主站蜘蛛池模板:
成人免费观看男女羞羞视频
|
亚洲国产综合专区在线电影
|
国产精品自在自线免费观看
|
女人被男人躁的女爽免费视频
|
青青青免费国产在线视频小草
|
久热中文字幕在线精品免费
|
18未年禁止免费观看
|
91香蕉国产线观看免费全集
|
久久精品毛片免费观看
|
亚洲国产精品免费在线观看
|
91热成人精品国产免费
|
亚洲精品免费在线
|
久久久久久久91精品免费观看
|
日本一区二区三区免费高清
|
日韩在线视频免费看
|
四只虎免费永久观看
|
免费一级毛片正在播放
|
亚洲黄片毛片在线观看
|
亚洲午夜久久久久妓女影院
|
亚洲天堂中文资源
|
亚洲人成电影青青在线播放
|
国产精品亚洲午夜一区二区三区
|
亚洲精品美女久久久久久久
|
国产精品亚洲一区二区三区在线观看
|
免费人人潮人人爽一区二区
|
两个人日本WWW免费版
|
免费无码VA一区二区三区
|
97免费人妻无码视频
|
成人免费a级毛片
|
日韩免费三级电影
|
国产av无码专区亚洲国产精品
|
亚洲AV无码专区国产乱码电影
|
亚洲精品456在线播放
|
亚洲国产精品美女久久久久
|
免费无码又爽又黄又刺激网站
|
国产一区二区三区免费观看在线
|
免费看片在线观看
|
国产成人免费a在线视频app
|
污污污视频在线免费观看
|
中文字幕在线免费视频
|
精品国产污污免费网站aⅴ
|