2014-10-29 46 views
2

我正在使用Struts2文本标签来获取翻译后的值。 所以,我有以下语句:Struts 2文本标签奇怪的行为

<s:text name="a"/> 

我没有在属性文件中的任意键'a',但在行动,我有名字a的对象。

会发生什么情况是由s:text呈现的值是对象实例的类名称([email protected])!

这是正常的吗?就我所知道的Struts2而言,如果没有找到具有该键的属性,则呈现的值将是键(文本标签名称属性)。这有没有发生过任何人?

+0

什么版本的Struts 2? – 2014-10-29 19:43:56

+0

我正在使用版本2.3.16.3 – 2014-10-29 19:56:11

+0

为什么要有这样的属性名称?这太可怕了。 – 2014-10-29 20:11:27

回答

1

我认为这很正常,因为Struts2解析OGNL表达式的属性,并且表达式评估的结果将被用作消息关键字。但是,文档说应该使用searchValueStack来防止在值栈中进行搜索。哪一个更好决定你,但我更喜欢<s:property value="getText('a')"/>作为替代。