使用字符串 bean 作为 SPEL 中的键从映射中获取值
Get value from map using a String bean as a key in SPEL
我想知道如何使用字符串 bean 作为键从 spring 定义的映射中获取值。
我在 xml 中定义了以下地图:
<bean id="myMap" class="java.util.HashMap">
<constructor-arg>
<util:map>
<entry key="key1" value="Value1"/>
<entry key="key2" value="Value2"/>
</util:map>
</constructor-arg>
</bean>
我有以下简单的字符串 bean:
<bean id="mySimpleString" class="java.lang.String">
<constructor-arg value="key1"/>
</bean>
为了获得我在 xml 中使用 SPEL 的值,如下所示:
<bean class="com.my.MyClass">
<property name="someProp" value="#{myMap[#mySimpleString]}"/>
</bean>
然后我的 someProp
值变成空值。
我做错了什么?
因为 myMap
是一个 Map
你应该使用 #get()
方法来检索值。
这会起作用
<property name="someProp" value="#{myMap.get(mySimpleString)}"/>
我想知道如何使用字符串 bean 作为键从 spring 定义的映射中获取值。
我在 xml 中定义了以下地图:
<bean id="myMap" class="java.util.HashMap">
<constructor-arg>
<util:map>
<entry key="key1" value="Value1"/>
<entry key="key2" value="Value2"/>
</util:map>
</constructor-arg>
</bean>
我有以下简单的字符串 bean:
<bean id="mySimpleString" class="java.lang.String">
<constructor-arg value="key1"/>
</bean>
为了获得我在 xml 中使用 SPEL 的值,如下所示:
<bean class="com.my.MyClass">
<property name="someProp" value="#{myMap[#mySimpleString]}"/>
</bean>
然后我的 someProp
值变成空值。
我做错了什么?
因为 myMap
是一个 Map
你应该使用 #get()
方法来检索值。
这会起作用
<property name="someProp" value="#{myMap.get(mySimpleString)}"/>