سؤال

أنا أكتب بعض عبارات SPEL في XML ، ولا يمكنني الحصول على المحلل المحلل لتحديد متى أحتاج إلى الهروب من شخصية.

لقد حاولت ما يلي:

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

ومع ذلك ، لا يبدو أن الإضافة في 'يهرب من هذا الاقتباس الفردي وأستمر في تلقي استثناء محلل.

هل هناك أي طريقة للهروب من هذه القيم؟

هل كانت مفيدة؟

المحلول

من توثيق:

"لوضع عرض أسعار واحد في سلسلة استخدم حرفين اقتباس واحد."

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

نصائح أخرى

لقد عدلت إلى:

.... 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>

FWIW ، SPEL لديها دعم للمواد المزدوجة اعتبارا من الإصدار 3.2.SPR-9620

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top