自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Swing應(yīng)用的數(shù)據(jù)驗(yàn)證

開發(fā) 后端
本文介紹Swing應(yīng)用的數(shù)據(jù)驗(yàn)證,數(shù)據(jù)驗(yàn)證一直是軟件開發(fā)中非常重要的一環(huán),一定程度上保護(hù)你的系統(tǒng)。

這段時(shí)間真是忙得要死,一方面要開發(fā)公司項(xiàng)目的系統(tǒng)框架,要將項(xiàng)目分成不同的子項(xiàng)目,編寫核心代碼;另一方面要將極限編程(XP)引入團(tuán)隊(duì)開發(fā),部署各類 XP需要的服務(wù)例如subversion啦,ant+ivy啦,Hudson啦等等。順便說句題外話,ubuntu還真是不是一般的好用,建議有能力的全部轉(zhuǎn)到ubuntu上去開發(fā)。

我目前開發(fā)的這個(gè)框架的客戶端是具肥的客戶端,也就是Swing客戶端了。Swing應(yīng)用相對(duì)于Web應(yīng)用有很多優(yōu)勢,因?yàn)樗省?shù)據(jù)驗(yàn)證就是其中一個(gè)。當(dāng)然現(xiàn)在的Web應(yīng)用通過使用Ajax也要比以前強(qiáng)很多了,但是還是避免不了在驗(yàn)證數(shù)據(jù)時(shí)向服務(wù)段發(fā)出請求,至少你無法避免驗(yàn)證結(jié)果從Web服務(wù)器傳輸?shù)接脩魹g覽器上這段過程。而Swing這類肥客戶端可以實(shí)現(xiàn)完全在本地對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,甚至可以斷網(wǎng)繼續(xù)工作(這也是Web應(yīng)用目前在研發(fā)的一個(gè)重要課題)。

前段時(shí)間開發(fā)出了一個(gè)可以應(yīng)用于所有Swing應(yīng)用的通用數(shù)據(jù)驗(yàn)證模塊,發(fā)現(xiàn)它在項(xiàng)目中使用后,對(duì)于普通的數(shù)據(jù)驗(yàn)證,程序員幾乎不需要編碼,效率提高了不少,就寫了一篇博文拿出來和大家分享。原文是用英文寫的。

編寫這個(gè)模塊使用了很多不同的開源框架和類庫,其中很重要的一個(gè)就是JXLayer.文章寫完后,我就跑去邀請JXLayer的作者Alexp來指點(diǎn)一下,然后就在我的文章后面開始了一段討論,挺有意思的,他不愧為是Swing team里面的牛人?。柡Π?!呵呵。

ok,回到今天這篇文章的正題。今天的主要目的是將我的英文博文翻譯成中文(自己的文章,我就不逐字逐句翻譯了,意思到了就行了,可能還會(huì)隨興展開一番討論)在這里展示給大家,與大家分享開發(fā)經(jīng)驗(yàn),希望大家能夠從中獲益,也希望能夠以文會(huì)友,廣交朋友。廢話少說,切入正題。

數(shù)據(jù)驗(yàn)證(Validation)一直是軟件開發(fā)中非常重要的一環(huán),有了它,你的系統(tǒng)會(huì)讓客戶感到更加友善,同時(shí)你的系統(tǒng)也得到了一定程度的保護(hù)。一般來說,數(shù)據(jù)驗(yàn)證既可以在客戶端也可以在服務(wù)端。默認(rèn)的JSF數(shù)據(jù)驗(yàn)證就是在服務(wù)端,數(shù)據(jù)只能在被提交以后才能夠被驗(yàn)證,然后把錯(cuò)誤信息傳遞回用戶的瀏覽器。后來大規(guī)模使用Ajax后,基本可以實(shí)現(xiàn)對(duì)修改的數(shù)據(jù)“即時(shí)”驗(yàn)證,注意這里是個(gè)打了引號(hào)的即時(shí),數(shù)據(jù)事實(shí)上還是要在瀏覽器和服務(wù)端之間進(jìn)行傳遞的,只不過Ajax將這種傳遞改為隱式了而已,理論上并沒有真正實(shí)現(xiàn)(斷網(wǎng))即時(shí)驗(yàn)證。而在Swing應(yīng)用上就能夠達(dá)成這種愿望。

事實(shí)上,開發(fā)Swing應(yīng)用時(shí),數(shù)據(jù)驗(yàn)證一直比較棘手,需要手工編碼的地方太多,效率不高。后來出了JGoodies Validation 結(jié)合JGoodies binding后,好了一些。這個(gè)JGoodies Validation既可以實(shí)現(xiàn)model層面的驗(yàn)證,也可以實(shí)現(xiàn)Bean層面的驗(yàn)證,但是多年使用下來,發(fā)現(xiàn)其實(shí)它比較適用于中小項(xiàng)目,而且要編寫的代碼其實(shí)一點(diǎn)不比自己手動(dòng)編寫的少。

JGoodies流行了一段時(shí)間后,sun開始推出自己的bean綁定方案:beansbinding(JSR 295),我個(gè)人感覺要比JGoodies binding好用(JGoodies的作者Karsten也在專家組里,這個(gè)人我以前和他一起共事過,我的msn space里面還有跟他的合影,絕對(duì)是Swing界的牛人)。這個(gè)beansbinding也提供數(shù)據(jù)驗(yàn)證,但是它的這個(gè)數(shù)據(jù)驗(yàn)證只是在target被改動(dòng)后,數(shù)據(jù)被同步回source之前才會(huì)起作用,使用起來局限性比較大,而且編碼量也不小。

由于目前絕大部分項(xiàng)目是基于POJO的,Hibernate validator已經(jīng)提供了一個(gè)很好的數(shù)據(jù)驗(yàn)證框架,我們完全沒必要再重復(fù)發(fā)明輪子,我們應(yīng)該努力站在巨人的肩膀上,這樣我們才能站得更高,看得更遠(yuǎn)。于是我考慮結(jié)合beansbinding和Hibernate Validator開發(fā)數(shù)據(jù)驗(yàn)證。還有一個(gè)重要的問題,那就是數(shù)據(jù)錯(cuò)誤的時(shí)候,需要在用戶界面上展示相應(yīng)的信息,例如Error icon和錯(cuò)誤提示,這部分我考慮使用JXLayer.

【編輯推薦】

  1. SwingWorker的實(shí)例化
  2. Swing控件可以提供聽覺反饋
  3. Java swing組件的串行化方法
  4. Swing組件的新元素Spinner Model
  5. SwingWorker單線程規(guī)則
責(zé)任編輯:佚名 來源: 中國IT實(shí)驗(yàn)室
相關(guān)推薦

2009-07-10 14:41:57

Swing技術(shù)

2009-07-17 16:09:29

Swing桌面應(yīng)用程序

2009-07-14 18:10:38

Swing應(yīng)用程序框架

2009-07-16 17:09:02

Swing應(yīng)用程序

2009-07-17 10:42:06

Swing應(yīng)用程序處理函數(shù)

2009-07-10 17:24:07

Swing應(yīng)用程序

2011-04-15 17:33:39

SWINGAWT

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-14 11:08:42

WebRendererSwing應(yīng)用程序

2009-11-26 10:48:59

PHP驗(yàn)證碼

2009-07-17 15:34:37

Java Swing連接數(shù)據(jù)庫

2022-02-17 13:04:57

網(wǎng)絡(luò)驗(yàn)證運(yùn)營商

2009-08-04 15:02:18

ASP.NET數(shù)據(jù)驗(yàn)證

2023-12-01 08:01:33

GoValidator

2009-07-14 17:21:42

Swing組件

2009-07-14 15:01:02

AWT和Swing

2009-07-15 11:02:32

Swing組件

2009-07-16 08:53:03

Swing任務(wù)Swing線程

2009-07-10 16:29:32

Swing組件

2009-07-17 17:16:44

Swing實(shí)現(xiàn)的目標(biāo)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)