Java:如何在spring框架中声明嵌套映射?

时间:2009-06-05 18:37:25

标签: java spring map

例如,您如何声明三重地图,如 -

Map<String, Map<String, Map<Boolean, String>>>, with the keys being someKey1, someKey2, and someKey3 (true/false)?

我知道,直到这个 -

<util:map
     id="someMap"
    map-class="java.util.HashMap"
    key-type="java.lang.String"
    value-type="java.lang.String">
        <entry key="someKey1" value="someValue" />
</util:map>

编辑:

好的,这就是我想要减少大量的if语句。

123: //some key 1

  abc: //some key 2

     true:  //some key 3

        a  //some value

     false: //some key 3

        b  //some value


 456: 

  def: 

     true:  

        c

     false: 

        d

非常感谢。

2 个答案:

答案 0 :(得分:6)

也许这会奏效:

<util:map id="someMap">
    <entry key="123">
        <value>
            <map>
                <entry key="abc">
                    <value>
                        <map key-type="java.lang.Boolean">
                            <entry key="true" value="a"/>
                            <entry key="false" value="b"/>
                        </map>
                    </value>
                </entry>
            </map>
        </value>
    </entry>
    <entry key="456">
        <value>
            <map>
                <entry key="def">
                    <value>
                        <map key-type="java.lang.Boolean">
                            <entry key="true" value="c"/>
                            <entry key="false" value="d"/>
                        </map>
                    </value>
                </entry>
            </map>
        </value>
    </entry>
</util:map>

答案 1 :(得分:5)

你真的得到了Adam的代码来编译吗?我不得不删除外部的value-tags以使其正常工作。

<util:map id="someMap">
    <entry key="123">        
        <map>
            <entry key="abc">
                <map key-type="java.lang.Boolean">
                    <entry key="true" value="a"/>
                    <entry key="false" value="b"/>
                </map>        
            </entry>
        </map>        
    </entry>
    <entry key="456">
        <map>
            <entry key="def">
                 <map key-type="java.lang.Boolean">
                     <entry key="true" value="c"/>
                     <entry key="false" value="d"/>
                 </map>
            </entry>
        </map>
    </entry>
</util:map>

或者我错过了什么? =)