복붙노트

[SPRING] SpEL에서 어떻게 값을 벗어나나요?

SPRING

SpEL에서 어떻게 값을 벗어나나요?

필자는 XML로 몇 가지 SpEL 문을 쓰고 있는데, 파서가 문자를 이스케이프해야 하는지를 결정할 수는 없습니다.

나는 다음을 시도했다 :

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

그러나 \ '에 추가하면 작은 따옴표를 벗어나는 것처럼 보이지 않고 계속 파서 예외를받습니다.

이 값들을 벗어날 방법이 있습니까?

해결법

  1. ==============================

    1.문서에서 :

    문서에서 :

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

  2. ==============================

    2.나는 다음과 같이 수정했다.

    나는 다음과 같이 수정했다.

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

    이 작동, 이전에 SpEL 함수에 문자열 값을 입력 할 때 큰 따옴표를 사용할 때 문제가 있다는 것을 잘못 기억했습니다.

    아래는 스키마 정의입니다.

    <?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">
    

    XML은 eclipse에서 올바르게 유효성을 검사합니다. 그러나 나의 단순화 된 예제는 유효하지 않았다 - 나의 사과와 좋은 잡기. 나는 실제로 이와 같은 값을 설정하고있다.

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

    3.FWIW, SpEL은 버전 3.2에서 큰 따옴표를 지원합니다. SPR-9620

    FWIW, SpEL은 버전 3.2에서 큰 따옴표를 지원합니다. SPR-9620

  4. from https://stackoverflow.com/questions/4308247/how-do-i-escape-values-in-spel by cc-by-sa and MIT license