Pregunta

Estoy escribiendo algunas declaraciones SPEL en XML, y no puedo obtener el programa de análisis para determinar cuando necesito escapar de un personaje.

He intentado lo siguiente:

<... property="someProperty" value="#{ someBean.aMethodOnTheBean('st\'ring') }" />

Sin embargo la adición en el \' no parece escapar de esa comilla simple y no dejo de recibir una excepción de analizador.

¿Hay alguna manera de escapar de estos valores?

¿Fue útil?

Solución

Desde el documentación :

  

"Para poner un solo misma cita en una   el uso de dos cuerdas comilla simple   personajes ".

expression = 'something = ''' + someMethod.getValue + ''''

Otros consejos

I modificado para:

.... value="#{ someBean.aMethodOnTheBean("st'ring") }" 

Estos trabajos, recordé incorrectamente que tuve problemas al utilizar comillas dobles para introducir un valor de cadena en una función SpEL anterior.

A continuación se muestra la definición de esquema:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
       default-lazy-init="true"
       default-init-method="initialize">

El XML valida adecuadamente en eclipse. Sin embargo, mi ejemplo simplificado no era válida - mis disculpas y buena pesca. De hecho, estoy estableciendo el valor de la siguiente manera:

<bean id="someBean" class="someClass">
    <property name="someList">
        <list>
            <value>"#{ anotherBean.methodOnBean("some'String") }"</value>
        </list>
    </property>
</bean>

Fwiw, SpEL tiene soporte para comillas dobles partir de la versión 3.2. SPR-9620

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top