0

如何在 spring map 中将值作为 xpath 表达式。

我正在尝试如下但不工作。

    <bean id="test" class="com.test.testmap">
    <property name="testmap">
      <map>
         <entry key="1" value="/emp/empid"/>
         <entry key="2" value="/emp/empname"/>
       </map>
     </property>
    </bean>

问候,

柴兔

4

1 回答 1

0

使用 SpringMapFactoryBean定义testmap属性,包括Map您希望使用的实现(下面是 TreeMap)。

 <bean id="test" class="com.test.testmap">
    <property name="testmap">
        <bean class="org.springframework.beans.factory.config.MapFactoryBean">
            <property name="sourceMap">
                <map>
                    <entry key="1">
                        <value>/emp/empid</value>
                    </entry>
                    <entry key="2">
                        <value>/emp/empname</value>
                    </entry>
                </map>
            </property>
            <property name="targetMapClass" value="java.util.TreeMap"/>
        </bean>
    </property>
 </bean>

在您的 java 代码中,您可以像这样使用它,假设您的 testmap 字段有一个 getter,您应该:

com.test.testmap test = (com.test.testmap)applicationContext.getBean("test");
String xpath = (String)test.getTestmap().get("1");

com.test.TestMap为了便于阅读,您还应该遵守 Java 约定并重命名您的类。

于 2013-09-13T01:21:03.883 回答