java
  • spring
  • spring-el
  • 2014-07-22 21 views 7 likes 
    7

    Jestem całkiem nowy w Spring i mam deklarację bean w następujący sposób.Jak odwołać się do stałej w Spring Expression Language

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

    typeOf to typ Integer, która jest kluczem innej tabeli, która typeOfBuilder buduje przez KeyOPEN_DATE który jest w tym przypadku.

    ten kod działa poprawnie, ale ma ograniczenia. OPEN_DATE jest stałą w NON-MANAGE Spring Bean coś jak poniżej.

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

    i zdecydowanie zalecamy, aby móc się do niego odwoływać !!.

    coś takiego.

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

    każda pomoc jest ogromnie wdzięczna.

    Odpowiedz

    10

    Do określenia instancji klasy java.lang.Class ("typ") można użyć specjalnego operatora "T". Metody statyczne są również wywoływane przy użyciu tego operatora.

    Wypróbuj poniższy kod.

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

    działa doskonale dzięki bardzo ... – chiperortiz

    Powiązane problemy