未从属性文件中读取Struts 2属性

问题描述:

在遵循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

所以在我的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消除了这种指数形式