在关注struts 2网页和大量示例之后,我的应用程序仍然无法从struts.properties文件中获取值。
我正在尝试这样做,以便为货币类型格式提供一些价值:
<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 :(得分:1)
所以在我的struts.xml文件中,我把这行
<constant name="struts.custom.i18n.resources" value="struts" />
需要知道我正在尝试使用struts.properties文件。我假设默认情况下,一个名为struts.properties的文件位于地址链中,以查找此类常量。只有当你将它命名为其他东西时才需要指定它。即使它是在Struts 2文档推荐的WEB-INF / classes中,它也只是没有查看这个文件。
修改强>
对于它的价值,我还必须修改我的struts文本标签,如此
<s:property value="getText('struts.money.format',{@java.lang.Double@valueOf(value)})" />
实际上,value
应该是一个BigDecimal,但它在视图级别被视为java.lang.String。问题是一些String对象具有指数格式(如1.642E07或其他类似的效果),并且struts格式化程序无法处理指数格式。 valueOf消除了这种指数形成的