2012-02-29 53 views
1

請問你們可以給我一些建議,如何在GWT應用程序中進行字段的客戶端驗證?如何在代理實體上進行客戶端即時驗證?

我在談論檢查字段值失去焦點後,我可以通知用戶需要修復。

我很困惑,因爲我使用的是RequestFactory,因此JSR 303引用的客戶端沒有真正的bean。

另外我想超越@NotNull@Size約束。例如,我希望能夠檢查電子郵件是否輸入正確,或郵寄地址包含建築物號碼等。

鏈接到庫和代碼示例將非常有幫助。

回答

2

for the fly驗證 - 正則表達式和ChangeListener是你的朋友。

註冊更改您的文本框字段的偵聽器。

對可接受的電子郵件地址的內容執行正則表達式。

http://www.regular-expressions.info/email.html

myTextBox.addChangeListener(new ChangeListener() { 
    void onChange(Widget sender) { 
     if(!sender.getValue().matches("^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,6}$")) { 
     sender.setFocus(); 
    } 
} 

正則表達式適用於JSR 303的驗證也是如此。

@Pattern("^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,6}$") 
private String sender; 

最後,我發現this excellent blog post,描述瞭如何直接從客戶端GWT(不需要服務器)內的擴展和定製AbstractGwtValidatorFactory做JSR 303的驗證。

相關問題