我正在尝试使用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" />
答案 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>