2014-10-02 65 views
0

我正在寫一個使用Java和eclipse的GWT應用程序。我正在嘗試將日期驗證添加到文本字段,並且遇到了最奇怪的問題。Mvp4gAnnotationException當使用SimpleDateFormat

當試圖建立我的Ant構建,我得到以下錯誤 com.mvp4g.util.exception.loader.Mvp4gAnnotationException:

我的代碼如下:

private boolean dateValidation(Date value) { 
    boolean valid = true; 
    String dateString = value.toString(); 
    try { 
     //SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm a"); 
     //format.setLenient(false); 
     //format.parse(dateString); 
    } catch (Exception e) { 
     valid = false; 
    } 
    return valid; 
} 

註釋掉的代碼是導致錯誤的代碼。當我取消註釋format = new SimpleDateFormat()語句時,該建築物會中斷。否則,它建立良好。有沒有人有任何想法會造成這種情況?我不是很熟悉GWT,我不知道會是什麼原因造成這種情況....

任何幫助表示讚賞我一直在環顧四周,試圖弄清楚這永遠!讓我知道如果你需要我添加更多的代碼/完整的例外!

謝謝...

FYI: 使用GWT-2.5.1-2.5.1 jdk1.6.0_43 在Eclipse開發

UPDATE:

我能使用以下代碼修復此問題:

DateTimeFormat dateFormat = DateTimeFormat.getFormat("MM/dd/yyyy HH:mm a"); 
Date current = view.getDtEndDate().getValue();       
current = dateFormat.parse(dateFormat.format(current)); 

儘管issu e在技術上解決了....我會對這是爲什麼感興趣?任何人都可以詳述嗎?

回答

0

我假設您正在驗證視圖或演示者級中的日期字段。由於您無法在客戶端使用SimpleDateFormat(No Source Code is available for type java.text.SimpleDateFormat: GWT Compilation Error),因此無法編譯該類。

在mvp4g中,您必須註釋您的演示者(在@Event-annotation中的eventbus內)和視圖類作爲@Presenter註釋的參數。 mvp4g會嘗試加載這些類。在無法編譯類的情況下,該類不可用並且無法加載。

這就是爲什麼你得到com.mvp4g.util.exception.loader.Mvp4gAnnotationException的原因。

希望可以幫到