2016-12-14 4 views
0

In meiner Feder Konfigurationsdatei, möchte ich mit einigen Variablen, bis der Laufzeit eine Zeichenfolge definieren, aber wenn ich die Anwendung zu starten, wirft es ein Fehler zu sagen:Wie behält man den # {} Ausdruck in der Frühlings-Konfigurationsdatei?

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myid' defined in class path resource [spring-listview.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Property or field 'base' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public? at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)

<bean id="myid" class="com.some.BasicWebUI"> 
    <property name="colsTemplate"> 
    <map> 
     <entry key="NAME"> 
     <value> 
      <![CDATA[<a href="#{base}/agent/detail?id=#{row.UID}">#{row.NAME}</a> ]]> 
     </value> 
     </entry> 
    </map> 
    </property> 
</bean> 

Die spring.version ist 3.2.13.RELEASE

Also, was kann ich tun, um die Zeichenfolge im CDATA-Bereich unberührt zu halten?

Antwort

0

Ich finde diese Lösung funktioniert, verwenden Sie \ zwischen $ oder # und { Symbole

<bean id="myid" class="com.some.BasicWebUI"> 
    <property name="colsTemplate"> 
    <map> 
     <entry key="NAME"> 
     <value> 
      <![CDATA[<a href="#\{base}/agent/detail?id=#\{row.UID}">#\{row.NAME}</a> ]]> 
     </value> 
     </entry> 
    </map> 
    </property> 
</bean> 
Verwandte Themen