كيف أهرب من القيم في سبيل؟
سؤال
أنا أكتب بعض عبارات 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