2017-08-14 34 views
-1

我从支柱2.1升级的应用支柱2.3.23,但我有一个奇怪的错误与新版本... 我在我的JSP下面的代码:Struts2的GetText返回多少?

<span id="n1"><s:text name="%{getText('prod_n1')}"/></span> 

在我的属性文件:

prod_n1=N-1 

对于一些原因,这给了我作为输出“-1.0” ......

如果我取代“N-1”由“富”,那么我的输出是“富”如预计。它看起来像getText方法看到一个数字“N-1”!任何想法如何解决它?

+0

''是国际化。 –

回答

0

更多的调查之后,我可以复制在空白页上这个bug,它只能与调用的getText一个<s:text/>标签内的combinaison发生。在这种配置中,输出始终是一个号码,如果输入字符串开始或以数字结束,并且不包含空格。它不仅发生在属性文件中,而且发生在任何输入(例如会话变量)上。

我看了一下Struts2代码,我认为这是提取文本的方式,这导致将输入视为浮点数。

所以,只是尽量不要使用这种方法的“文本”标签内...

0

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

然后结果被标签为OGNL是解析使用,它的评估,以-1.0,如果有在具有浮点值0valueStack的关键N

那么这个密钥是用来寻找在属性文件中的值。由于这样的键-1.0未找到该密钥被打印出来。