2012-10-08 189 views
1

我是GWT新手,面臨一個問題。GWT屬性文件配置

如何在啓動時爲.properties文件進行初始配置。 我想在GWT App中創建一個。

此外,GWT有客戶端和服務器包。

我想在客戶端軟件包中設置配置,因爲所有配置都屬於客戶端。

我的實際需要,

我有一個textarea的這會佔用字符中的固定數量的,在我的屬性文件中像下面長度定義。

所以我必須讀取屬性文件進行驗證。

my.properties

smsConstraintEnabled=true 
smsConstraintCharLimit=160 

我發現幾個鏈接,但所有人都在談論關於區域設置屬性文件,我沒有在語言環境方面的任何需求,而是需要簡單的鍵值配置。

我想要這個文件在啓動時或入口點本身加載,然後我可以在任何客戶端包類中使用它進行驗證。

在此先感謝。

回答

3

使用Constants接口。它是以I18N爲基礎構建的,但在這種情況下也可以正常工作,在這種情況下,您可以爲單個語言環境(默認語言環境)提供常量值(因此用於編譯應用程序的每個語言環境)。

但是,這意味着在編譯時,文件是讀取,而不是運行時(即每次更改屬性文件時都必須重新編譯您的應用程序)。

如果你想要更多的東西動態,然後讀取服務器端的文件並將信息傳遞給客戶端。最簡單並且以最小的開銷,使用dynamic host page。若要讀取客戶端代碼中的值,請使用Dictionary(和Integer.parseInt等)或使用JSNI(可能使用overlay type)。

+0

謝謝托馬斯,其實我很困惑該怎麼做,因爲每個網站都給出了考慮國際需求的例子,所以我只是想這不是我的需要。我做了與常量界面,它的工作。謝謝。 – Jayesh

+0

也是必須具有屬性文件名稱和接口名稱是相同的?你也可以詳細描述這一行:「你爲單個語言環境提供的常量值,默認值(因此用於編譯你的應用程序的每個語言環境)」。 – Jayesh

+1

文件名必須匹配,這是GWT在爲接口生成實現類時如何找到屬性文件。我的意思是,如果你只提供一個'MyConstants.properties'(沒有指定的區域設置==默認區域設置)並且沒有'MyConstants_en.properties'(或者其他一些區域設置),那麼這個文件將被用於你的應用程序的語言環境。 –