java Spring Framework:Map - 对另一个 Map 的值引用
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3558949/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Spring Framework: Map - Value Referencing to another Map
提问by Milli Zeloski
I have a map declaration:
我有一个地图声明:
<!-- 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>
What is wrong with that? Any suggestion?
这有什么问题?有什么建议吗?
回答by skaffman
Firstly, the XML is not well-formed, it should be:
首先,XML 格式不正确,它应该是:
<entry key="0" value-ref="someMap"/>
Also, according to your definition, the someMapRefmap bean can only contain values of type java.util.HashMap, but you're trying to set a value for key 0of SOME VALUE, which is a String. It can contain Strings, or hashMaps, but not both.
此外,根据您的定义,someMapRefmap bean 只能包含 type 的值java.util.HashMap,但您试图为 key 0of设置一个值SOME VALUE,它是一个字符串。它可以包含字符串或 hashMap,但不能同时包含两者。
回答by gawi
Not valid XML:
无效的 XML:
<entry key="0" value ref = "someMap" />
remove "value"
删除“值”
回答by Sean Patrick Floyd
I think it should work like this:
我认为它应该像这样工作:
<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>

