我有一张地图声明:
<!-- SOME MAP -->
<util:map id="someMap" map-class="java.util.HashMap"
key-type="java.lang.String" value-type="java.lang.String" >
<entry key="0" value="SOME VALUE" />
<entry key="1" value="SOME VALUE 2" />
<entry key="default" value="SOME VALUE 3" />
</util:map>
<!-- SOME MAP REFERENCE -->
<util:map id="someMapRef" map-class="java.util.HashMap"
key-type="java.lang.String" value-type="java.util.HashMap" >
<entry key="0" value ref = "someMap" />
<entry key="default" value="SOME VALUE" />
</util:map>
这有什么问题?有什么建议吗?
答案 0 :(得分:9)
首先,XML格式不正确,应该是:
<entry key="0" value-ref="someMap"/>
此外,根据您的定义,someMapRef
地图bean只能包含java.util.HashMap
类型的值,但您尝试设置{{1}的键0
的值这是一个String。它可以包含字符串或hashMaps,但不能同时包含两者。
答案 1 :(得分:0)
无效的XML:
<entry key="0" value ref = "someMap" />
删除“值”
答案 2 :(得分:0)
我认为它应该是这样的:
<util:map
id="someMap"
map-class="java.util.HashMap"
key-type="java.lang.String"
value-type="java.lang.String">
<entry
key="0"
value="SOME VALUE" />
<entry
key="1"
value="SOME VALUE 2" />
<entry
key="default"
value="SOME VALUE 3" />
</util:map>
<!-- type: Map<String, Map<String, String>> -->
<util:map
id="someMapRef"
map-class="java.util.HashMap"
key-type="java.lang.String"
value-type="java.util.Map">
<entry
key="0"
value-ref="someMap" /> <!-- value-ref not "value ref" -->
<!-- This is the map constructed above -->
<entry
key="SOME_VALUE">
<map> <!-- and here is another map -->
<entry
key="SOME_OTHER_KEY1"
value="SOME_OTHER_VALUE1" />
<entry
key="SOME_OTHER_KEY2"
value="SOME_OTHER_VALUE2" />
<entry
key="SOME_OTHER_KEY3"
value="SOME_OTHER_VALUE3" />
</map>
</entry>
</util:map>