2011-11-01 159 views
3

我有必要做这样的说法:使用一个消息在其他春消息(属性文件)

bob.common=goat 
bob.have=I have a {bob.common}! 
bob.want=I want a {bob.common}! 
bob.need=I need a {bob.common}! 

是这样的事情可能吗?我知道这看起来很愚蠢,但是能够重新使用一个普通的作品在这里是需要的,我们真的不能(不想)以编程方式进行。

我们已经在我们的属性中使用了编号参数,但我们希望能够将参考传递给另一个属性。

回答

2

按照Spring changelog,这已被支持,因为2.5.3:

  • PropertyPlaceholderConfigurer占位符键支持嵌套键以及
(如 “$ {分贝$ {}环境}”)

因此,对于你的例子情况下,你应该能够使用:

bob.have=I have a ${bob.common}! 

PropertyPlaceholderConfigurer应该承认“嵌套关键“并正确解决。

+0

有趣。我明天就会出手! – Andy

+1

FWIW,这在我的实际*消息*文件中不起作用。我认为这真是太好了。我错过了什么吗? – dbreaux

1

我建议这样做:

bob.common=goat 
bob.have=I have a {0}! 
bob.want=I want a {0}! 
bob.need=I need a {0}! 

然后在您的网页:

<spring:message code="bob.common" var="animal"/> 
<spring:message code="bob.have" arguments="${animal}"/> 
<spring:message code="bob.want" arguments="${animal}"/> 
<spring:message code="bob.need" arguments="${animal}"/> 

你想要做就太严格,如果你想改变你的动物例如方式。