如何在Spring Expression Language中引用常量

chi*_*tiz 7 java spring spring-el

我是Spring的新手,我有一个bean声明,如下所示.

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

typeOf是一种Integer类型,它是在这种情况下typeOfBuilder构建的另一个表的键.KeyOPEN_DATE

这段代码工作正常,但有一个限制.OPEN_DATE是一个NON-MANAGE Spring Bean像下面这样的常量.

public final class Constants
{
     public final static String KEY_FOR_OPEN_DATE = "OPEN_DATE";     
} 
Run Code Online (Sandbox Code Playgroud)

并强烈建议能够参考它!!

这样的事情.

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

任何帮助都非常感激.

pgi*_*cek 16

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

请尝试下面的代码.

<property name='typeOf' value='#{typeOfBuilder.getKeyFor(T(some.package.Constants).KEY_FOR_OPEN_DATE).getId()}'/>
Run Code Online (Sandbox Code Playgroud)