SpEL表达式使用" contains()"字符串方法

时间:2015-10-22 14:55:31

标签: java string spring spring-el

我正在尝试使用String.contains(),以便根据存储在jobExecutionContext中的文件名动态创建字段的值。键/值(file => nameOfFile.txt)对肯定存在于上下文中,因为我在其他地方使用它。

我正在尝试使用以下SpEL表达式执行此操作:

SELECT SUM( total_amount ) AS total FROM transaction
     WHERE execution_date BETWEEN "2015-08-1" AND "2015-09-30"

但是我收到了错误:

<property name="subject" value="#{((String)jobExecutionContext['file']).contains('monk') ? 'Monkey' : 'Banana'} kind of file" />

1 个答案:

答案 0 :(得分:4)

异常因为“(String)”,你可以这样做:

<util:map id="fruit">
    <entry key="banana" value="#{89.7}"/>
    <entry key="apple" value="efg"/>
    <entry key="orange" value="lmn"/>
</util:map>
<bean id="hello" class="com.choiwan.Hello">
    <property name="name" value="#{(fruit['banana']+'').contains('89')?'Monkey':'Banana'} kind of file"/>
</bean>