Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用字符串bean作为SPEL中的键从映射中获取值_Java_Spring_Spring El - Fatal编程技术网

Java 使用字符串bean作为SPEL中的键从映射中获取值

Java 使用字符串bean作为SPEL中的键从映射中获取值,java,spring,spring-el,Java,Spring,Spring El,我想知道如何使用字符串bean作为键从spring定义的映射中获取值 我在xml中定义了以下映射: <bean id="myMap" class="java.util.HashMap"> <constructor-arg> <util:map> <entry key="key1" value="Value1"/> <entry key="key2" value="Valu

我想知道如何使用字符串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)}"/>


我不是专家,但我想说第二个“#”需要删除。我已经尝试过了,但没有效果。很酷,它可以工作!谢谢但是,如果我使用这样的字符串值,为什么带括号的表达式可以工作:
#{myMap['key1']}
?我不确定它工作的原因,因为通常它不应该工作,并且应该引发BeanExpressionException。但无论如何,它应该与SPEL处理有关。