2014-07-22 33 views
7

我对Spring很新,我有一个bean声明如下。如何在Spring表达式语言中引用一个常量

<bean id="mybean" class="" scope="prototype"> 
     <property name='typeOf' value='#{typeOfBuilder.getKeyFor("OPEN_DATE").getId()}'/>  
</bean> 

typeOf是整数类型的哪个是哪个typeOfBuilder建立由Key这是在这种情况下OPEN_DATE另一个表的键。

此代码工作正常,但有一个限制。 OPEN_DATENON-MANAGE Spring Bean中的常量,如下所示。

public final class Constants 
{ 
    public final static String KEY_FOR_OPEN_DATE = "OPEN_DATE";  
} 

并强烈建议能够参考它!

这样的事情。

<util:constant id="PATH_TO_CONSTANT" static-field="myPath"/> 
<property name='typeOf' value='#{typeOfBuilder.getKeyFor(PATH_TO_CONSTANT).getId()}'/> 

任何帮助,非常感谢。

回答

10

特殊的'T'运算符可用于指定java.lang.Class('类型')的实例。也使用此运算符调用静态方法。

尝试下面的代码。

<property name='typeOf' value='#{typeOfBuilder.getKeyFor(T(some.package.Constants).KEY_FOR_OPEN_DATE).getId()}'/> 
+0

它的工作原理非常完美,非常感谢... – chiperortiz

相关问题