2017-08-14 33 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未找到該密鑰被打印出來。