2015-12-16 15 views
0

在別人我在我所有的本地化.properties文件不同的值這兩個屬性:在wicket中有直接讀取本地化屬性的方法嗎?

... 
StateShow=true 
StateLabel=State 
... 

當用戶選擇一個國家保護無效的onUpdate(AjaxRequestTarget目標)被稱爲等在與下面的行方法工作:

... 
getSession().setLocale(locale); 
... 
stateLabel.setDefaultModel(new StringResourceModel("StateLabel",target.getPage(),null)); 
... 

也就是說,在美國,它表示州,在加拿大它說省,在日本它說,縣等,但下面的行不工作:

... 
showState  = Boolean.getBoolean(new StringResourceModel("StateShow",  target.getPage(),null).getString()); 
... 

也就是說,當正確的.properties文件顯示StateShow = true時,showState始終爲false。

無論如何要準確地訪問未被用作模型的本地化屬性嗎?

回答

1

您的問題可能與Wicket無關,但與您使用Boolean.getBoolean(String)的方法有關,它會嘗試使用給定名稱查找系統屬性(檢查javadoc)。

所以我會假設你的StringResourceModel正確返回值「真」。然後Boolean.getBoolean(String)嘗試查找名爲「true」的系統屬性,該屬性可能不存在,因此返回false。

您可能想用Boolean.parseBoolean(String)代替。

+0

現在我覺得啞(呃) –