spring map entry value as xpath expression

时间:2013-09-13 00:06:33

标签: java spring

如何在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>

此致

Chaitu

1 个答案:

答案 0 :(得分:0)

使用Spring的MapFactoryBean来定义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");

为了便于阅读,您还应该坚持使用Java约定并重命名您的类com.test.TestMap