为了账号安全,请及时绑定邮箱和手机立即绑定

在 `value` 标记内执行表达式

在 `value` 标记内执行表达式

慕哥6287543 2022-06-15 15:27:04
我想做这个<util:set id="datasources" value-type="java.lang.String">    <value>#{ '${processors}'.split(',') }</value></util:set>其中processors属性是一个列表processors=ITEM_1,ITEM_2。然后我希望在另一个 bean 中引用该 bean<util:map id="processors" key-type="java.lang.String" value-type="java.util.Set">    <entry key="processorTypes" value-ref="datasources"/></util:map>但它不起作用 - 它不会拆分值,最后我得到了processorTypes键中的所有值。但是当我value直接这样设置<entry key="processorTypes" value="#{ '${processors}'.split(',') }"/>它工作正常,并为我提供了一组键值。怎么了?
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

我在这里看到了两件事。首先,您将处理器作为 String 和 map id,这可能会让 Spring 感到困惑。其次,您的 SpEL 定义不正确。这是建议的解决方案。


    <util:map id="processors" key-type="java.lang.String" value-type="java.util.Set">

        <entry key="processorTypes" value-ref="sourcesSet"/>

    </util:map>


    <bean id="sourcesSet" class="java.util.HashSet">

        <constructor-arg value="#{list.split(',')}"/>

    </bean>


    <bean id="list" class="java.lang.String">

        <constructor-arg value="ITEM_1,ITEM_2"/>

    </bean>


查看完整回答
反对 回复 2022-06-15
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号