代码之家  ›  专栏  ›  技术社区  ›  Alex

Java:Spring框架:声明嵌套映射

  •  6
  • Alex  · 技术社区  · 17 年前

    我在第四行看到一个错误:

      <util:map id="entirePayTypesMap">
                <entry key="34">
                    <value>
                        <map>
                             <entry key="default">
                                  <value>
                                     <map  key-type="java.lang.Boolean">
                                         <entry key="true" value="3T" />
                                         <entry key="false" value="3U" />
                                     </map> 
                                  </value>
                             </entry>
                         </map> 
                    </value>
                </entry>
        </util:map> 
    

    有什么建议吗?

    2 回复  |  直到 17 年前
        1
  •  10
  •   Qwerty    11 年前

    对于复杂的值类型,不要嵌套map元素,而是使用 value-ref 属性。默认情况下, value 仅接受元素 String 价值观。

    属性可以是字符串,也可以使用JavaBeans PropertyEditor机制转换为所需的类型。这使得应用程序开发人员可以编写自定义PropertyEditor实现,将字符串转换为任意目标对象。

    请注意,这仅建议用于简单对象。通过用对其他bean的引用填充JavaBean属性来配置更复杂的对象。

    <util:map id="mapA" key-type="java.lang.Boolean">
        <entry key="true" value="3T" />
        <entry key="false" value="3U" />
    </util:map>
    <util:map id="map1">
        <entry key="default" value-ref="mapA"/>
    </util:map>
    
    <util:map id="mapB" key-type="java.lang.Boolean">
        <entry key="true" value="4T" />
        <entry key="false" value="4U" />
    </util:map>
    <util:map id="map2">
        <entry key="default" value-ref="mapB"/>
    </util:map>
    
    <util:map id="entirePayTypesMap">
        <entry key="34" value-ref="map1"/>
        <entry key="35" value-ref="map2"/>
    </util:map>
    
        2
  •  2
  •   setzamora    15 年前
    <util:map id="map1" map-class="java.util.HashMap" key-type="java.lang.String" value-type="java.util.HashMap">
    
    <entry key="" value-ref="map2">
    
    </util:map>
    
    
    
    <util:map id="map2" map-class="java.util.HashMap" key-type="java.lang.String" value-type="java.util.HashMap">
    
    <entry key="" value-ref="map3">
    
    </util:map>
    
    
    
    <util:map id="map3" map-class="java.util.HashMap" key-type="java.lang.String" value-type="java.lang.Boolean">
    
    <entry key="" value="">
    
    </util:map>