Java Struts2 getText返回一个数字?

Java Struts2 getText返回一个数字?,java,jsp,struts2,Java,Jsp,Struts2,我正在将一个应用程序从struts 2.1升级到struts 2.3.23,但新版本出现了一个奇怪的错误。。。 我的JSP中有以下代码: <span id="n1"><s:text name="%{getText('prod_n1')}"/></span> 出于某些原因,这将我作为输出“-1.0” 如果我将“N-1”替换为“foo”,那么我的输出就是预期的“foo”。看起来getText方法将“N-1”视为一个数字!有没有关于如何修复它的想法?经过更多的调查

我正在将一个应用程序从struts 2.1升级到struts 2.3.23,但新版本出现了一个奇怪的错误。。。 我的JSP中有以下代码:

<span id="n1"><s:text name="%{getText('prod_n1')}"/></span>
出于某些原因,这将我作为输出“-1.0”


如果我将“N-1”替换为“foo”,那么我的输出就是预期的“foo”。看起来getText方法将“N-1”视为一个数字!有没有关于如何修复它的想法?

经过更多的调查,我可以在空白页上重现这个错误,它只会在
标记内调用getText的组合中出现。在此配置中,如果输入字符串以数字开头或结尾且不包含空格,则输出始终为数字。它不仅发生在属性文件中,还发生在任何输入(如会话变量)中

我查看了Struts2代码,我认为这是提取文本的方式,它将输入看作浮点。


因此,请不要在“text”标记中使用此方法。

getText('prod_n1')的结果将按预期返回
N-1

然后,标记将结果用作已解析的OGNL,如果
valueStack
中有一个具有浮点值
0
的键
N
,则将其计算为
-1.0

然后,该键用于查找属性文件中的值。由于未找到该密钥
-1.0
,因此会打印出该密钥。

用于i18n。
prod_n1=N-1