2012-04-25 85 views
0

在遵循struts 2網頁和衆多示例之後,我的應用程序仍然不會從struts.properties文件中拾取值。未從屬性文件中讀取Struts 2屬性

我爲了給一些值貨幣型格式嘗試這樣的:

<s:property value="getText('struts.money.format',{value})" /> 

我struts.properties文件,該文件是WEB-INF/classes目錄下,並因此可見有如下一行

struts.money.format= {0,number,\u00A4##0.00} 

我得到字符串struts.money.format打印到屏幕上。如果我更改getText調用的第一個參數,則我放置的新字符串也將被打印,而不是真正的查找。

如果我做<s:property value="value" />我會找回一個合適的數字。如果我在getText調用中刪除第二個參數,我期望在屬性文件中取回賦值的右側,但我得到相同的struts.money.format

我在Struts 2.2.1.1中使用了Tomcat 6。是否有可能遺漏的難題的額外部分?

+0

您可以提供一個示例來說明如何格式化值?我們可以做它的消息資源包。 – 2012-04-25 16:35:56

+0

一旦我得到格式化的地方,如$ 5,215.21或$ 1,740.86。最終,我需要將負值賦予紅色文字。我想弄清楚爲什麼不是我的struts.properties被看到/使用。 – demongolem 2012-04-25 16:40:59

回答

1

所以在我的struts.xml文件,我把這個線

<constant name="struts.custom.i18n.resources" value="struts" /> 

它需要這個知道,我試圖用一個struts.properties文件。我曾經假設,默認情況下,一個名爲struts.properties的文件沿着一系列的地方去尋找一個像這樣的常量。只有當你指定了其他東西時,你才需要指定它。即使它是在Struts 2文檔推薦的WEB-INF/classes中,它只是沒有在這個文件中查找。

編輯

對於什麼是值得的,我也不得不修改我的支柱文字標籤,像這樣

<s:property value="getText('struts.money.format',{@[email protected](value)})" /> 

其實,value應該是一個BigDecimal,但它被在處理這裏的視圖級別爲java.lang.String。問題是一些String對象具有指數格式(如1.642E07或類似的情況),而struts格式化程序無法處理指數格式。 valueOf消除了這種指數形式