Java Struts2 getText返回一个数字?
我正在将一个应用程序从struts 2.1升级到struts 2.3.23,但新版本出现了一个奇怪的错误。。。 我的JSP中有以下代码: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”视为一个数字!有没有关于如何修复它的想法?经过更多的调查
<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