我有一个字符串列表,想在beans.xml文件中进行定义。
<util:list id="myFractions" value-type="java.lang.String">
<value>#{ T(com.myapp.longname.verylong.WelcomeController).RED_FRACTION }</value>
<value>#{ T(com.myapp.longname.verylong.WelcomeController).BLUE_FRACTION }</value>
<value>#{ T(${my.prefix}).GREEN_FRACTION }</value>
</util:list>
功能正常,但每次需要编写完整的限定常量名称com.myapp.longname.verylong.WelcomeController
。我想只写一次。我找到的一个解决办法是将其替换为属性如my.prefix
,因此我可以仅编写我的短前缀而不是真实的完整路径。但是,我将需要在全局“命名空间”中添加一个只需要一次的属性。我希望仅为此列表或至少仅为此beans.xml文件定义占位符。我已经尝试直接在beans.xml中使用PropertyPlaceholderConfigurer
定义属性,并且它起作用了,但然后我所有的初始属性都不再可用。
那么,我该如何避免每次在列表中编写com.myapp.longname.verylong.WelcomeController
作为前缀,并仅定义一次?理想情况下应该像这样
<util:list id="myFractions" value-type="java.lang.String">
<define-local-placeholder name="my.prefix" value="com.myapp.longname.verylong.WelcomeController" />
<value>#{ T(${my.prefix}).RED_FRACTION }</value>
<value>#{ T(${my.prefix}).BLUE_FRACTION }</value>
<value>#{ T(${my.prefix}).GREEN_FRACTION }</value>
</util:list>