2012-04-16 21 views
11

he siguiente definición de frijol para mi DAO -Cómo inyectar propiedades de cadena que contienen <carácter en Spring beans?

<bean id="userDao" class="UserDao"> 
<property name="dataSource" ref="dataSource" /> 
<property name="queryPurgeInvalidReferrals" value="delete from reference where date < ?" /> 
</bean> 

estoy recibiendo el error - El valor de "valor" atributo asociado con un tipo de elemento "propiedad" no debe contener el '<' carácter.

+1

escapar el valor < para trabajar, ya que es en el documento XML. – Phani

Respuesta

17

Desde config primavera es un archivo XML, tiene que escapar < según la sintaxis XML:

<property name="queryPurgeInvalidReferrals" 
    value="delete from reference where date &lt; ?" /> 
1

utilizar Unicode como

<property name="queryPurgeInvalidReferrals" value="delete from reference where date &#x3c; ?" /> 
12

Pruebe con esto:

<property name="queryPurgeInvalidReferrals"> 
    <value><![CDATA[delete from reference where date < ?]]></value> 
</property> 
+0

No creo que funcione. Como el valor es un atributo, ¿podrías definirlo como elemento dentro de la propiedad? Aunque no miré Spring XSD o DTD. – Phani

+0

El Spring XSD me permitió hacer eso. Pero no he intentado leer el elemento de valor. Aquí está todo lo que puede entrar en un elemento '': '(description ?, (meta | bean | ref | idref | value | null | array | list | set | map | props | namespace: uri =" ## other ")?) '. – adarshr

+0

La etiqueta 'property' puede tomar valor es un atributo o un elemento secundario. Para los valores de cadena, no hace diferencia. – pap

0

en su cadena de valores < debe ser reemplazado por &lt;

value="delete from reference where date < ?" 
Cuestiones relacionadas