成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Swing應用的數據驗證

開發 后端
本文介紹Swing應用的數據驗證,數據驗證一直是軟件開發中非常重要的一環,一定程度上保護你的系統。

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

我目前開發的這個框架的客戶端是具肥的客戶端,也就是Swing客戶端了。Swing應用相對于Web應用有很多優勢,因為它更肥。數據驗證就是其中一個。當然現在的Web應用通過使用Ajax也要比以前強很多了,但是還是避免不了在驗證數據時向服務段發出請求,至少你無法避免驗證結果從Web服務器傳輸到用戶瀏覽器上這段過程。而Swing這類肥客戶端可以實現完全在本地對數據進行驗證,甚至可以斷網繼續工作(這也是Web應用目前在研發的一個重要課題)。

前段時間開發出了一個可以應用于所有Swing應用的通用數據驗證模塊,發現它在項目中使用后,對于普通的數據驗證,程序員幾乎不需要編碼,效率提高了不少,就寫了一篇博文拿出來和大家分享。原文是用英文寫的。

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

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

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

事實上,開發Swing應用時,數據驗證一直比較棘手,需要手工編碼的地方太多,效率不高。后來出了JGoodies Validation 結合JGoodies binding后,好了一些。這個JGoodies Validation既可以實現model層面的驗證,也可以實現Bean層面的驗證,但是多年使用下來,發現其實它比較適用于中小項目,而且要編寫的代碼其實一點不比自己手動編寫的少。

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

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

【編輯推薦】

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

2009-07-10 14:41:57

Swing技術

2009-07-17 16:09:29

Swing桌面應用程序

2009-07-14 18:10:38

Swing應用程序框架

2009-07-16 17:09:02

Swing應用程序

2009-07-17 10:42:06

Swing應用程序處理函數

2009-07-10 17:24:07

Swing應用程序

2011-04-15 17:33:39

SWINGAWT

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-14 11:08:42

WebRendererSwing應用程序

2009-11-26 10:48:59

PHP驗證碼

2009-07-17 15:34:37

Java Swing連接數據庫

2022-02-17 13:04:57

網絡驗證運營商

2009-08-04 15:02:18

ASP.NET數據驗證

2023-12-01 08:01:33

GoValidator

2009-07-16 08:53:03

Swing任務Swing線程

2009-07-15 11:02:32

Swing組件

2009-07-14 15:01:02

AWT和Swing

2009-07-14 17:21:42

Swing組件

2009-07-10 16:29:32

Swing組件

2009-07-16 16:46:39

Swing窗體
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品国产一区 | 精品国产一区二区三区成人影院 | 国产欧美精品区一区二区三区 | 日本久久www成人免 成人久久久久 | www国产亚洲精品 | 欧美性猛交一区二区三区精品 | 国产分类视频 | 亚洲国产精品久久久久久 | 日韩欧美综合在线视频 | 日本不卡一区二区三区在线观看 | 希岛爱理在线 | 综合久久av | 国产激情视频 | 中文字幕日韩欧美 | 亚洲日本免费 | 91精品国产91久久综合桃花 | 精品久久久久久久久久久久久久 | 久久精彩 | 草草草影院 | 国产一区二区中文字幕 | 国产网站在线播放 | 天天干夜夜拍 | 超碰高清 | 九九九视频精品 | 老司机午夜性大片 | 日韩欧美中文 | 亚洲一区在线日韩在线深爱 | 色综合久久久 | 亚洲91精品 | 久在线精品视频 | 美日韩精品| 日韩一区二区三区精品 | 一区二区在线 | 日本激情一区二区 | 国产成人高清成人av片在线看 | 成人三级在线观看 | jlzzjlzz欧美大全 | 日韩精品一区二区三区中文字幕 | 中文字幕1区2区3区 亚洲国产成人精品女人久久久 | 午夜资源| 九九精品在线 |