民间,
目前,我们使用一组带有Struts 2.x的标准属性文件来提供我们的I18N功能 - 在大多数情况下,这些文件正是我们所需要的。但是,有时候能够让各个属性引用资源包中的其他属性会很棒,例如:
name.first=John
name.last=Doe
name.full={name.first} {name.last}
我知道java.util.Properties的几个扩展,它们提供了以下各种功能:
我想知道是否有人试图将这些以某种方式集成到Struts 2.x中 - 是否有可能覆盖处理资源包解析的机制?
答案 0 :(得分:2)
没有类似内置的内容,但IIRC可以通过以下方式设置文本提供程序:
<bean type="com.opensymphony.xwork2.TextProvider" name="struts"
class="com.opensymphony.xwork2.TextProviderSupport" scope="default" />
我从来没有真正做到这一点,但这是一个有价值的,有趣的实验。
属性可能包含任意OGNL,但是你可以在此期间伪造它(详细):
name.first=John
name.last=Doe
name.full=%{getText('name.first')} %{getText('name.last')}
(您也可以使用$ {...},但我更喜欢%{...},所以很明显它是OGNL。)
我已经将这个问题加入书签进行研究,这里有几个很酷的想法。