Spring 如何在Java中注入嵌套的map.entries?
我正在尝试获取第二个条目的值,并使用isues。提前感谢你的帮助 这是我的密码:Spring 如何在Java中注入嵌套的map.entries?,spring,collections,map,Spring,Collections,Map,我正在尝试获取第二个条目的值,并使用isues。提前感谢你的帮助 这是我的密码: <util:map id="externalUrlMap" map-class="java.util.HashMap"> <entry key="privacy"> <util:map map-class="java.util.HashMap"> <entry key="en" value="${exit.pr
<util:map id="externalUrlMap" map-class="java.util.HashMap">
<entry key="privacy">
<util:map map-class="java.util.HashMap">
<entry key="en" value="${exit.privacy.url.en}"/>
<entry key="fr" value="${exit.privacy.url.fr}"/>
</util:map>
</entry>
<entry key="logout">
<util:map map-class="java.util.HashMap">
<entry key="en" value="${exit.logout.url.en}"/>
<entry key="fr" value="${exit.logout.url.fr}"/>
</util:map>
</entry>
</util:map>
和控制器
String urlType = "privacy";
// Using Iterator to loop externalUrlMap
Iterator<Map.Entry<String, Entry<String, String>>> entries = externalUrlMap.entrySet().iterator();
// Start Iterator
while (entries.hasNext()) {
Map.Entry<String, List<String>> entry = entries.next();
if (entry.getKey().equalsIgnoreCase(urlType)){
String key = entry.getKey();
//Object value = entry.getValue().en;
List<String> list = entry.getValue();
//first item
String first = list.get(0);
//second item
String second = list.get(1);
System.out.println(key + "" + ""+ first +""+ second );
}
}
String urlType=“隐私”;
//使用迭代器循环externalUrlMap
迭代器条目=externalUrlMap.entrySet().Iterator();
//启动迭代器
while(entries.hasNext()){
Map.Entry=entries.next();
if(entry.getKey().equalsIgnoreCase(urlType)){
String key=entry.getKey();
//对象值=entry.getValue().en;
List=entry.getValue();
//第一项
String first=list.get(0);
//第二项
字符串秒=list.get(1);
System.out.println(键+“”+“”+第一个+“”+第二个);
}
}
这就是我得到的错误
类型不匹配:无法从迭代器>转换为迭代器>>
非常感谢。为了测试,我做了以下最低限度的设置。访问值direkt没有问题
import java.util.Map;
import org.springframework.context.support.GenericXmlApplicationContext;
public class Test {
public static void main(String[] args) {
GenericXmlApplicationContext context = new GenericXmlApplicationContext("/application-context.xml");
Map<String, Map<String, String>> externalUrlMap = (Map<String, Map<String, String>>)context.getBean("externalUrlMap");
System.out.println(externalUrlMap.get("privacy").get("en"));
System.out.println(externalUrlMap.get("privacy").get("fr"));
System.out.println(externalUrlMap.get("logout").get("en"));
System.out.println(externalUrlMap.get("logout").get("fr"));
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>url.properties</value>
</property>
</bean>
<util:map id="externalUrlMap" map-class="java.util.HashMap">
<entry key="privacy">
<util:map map-class="java.util.HashMap">
<entry key="en" value="${exit.privacy.url.en}"/>
<entry key="fr" value="${exit.privacy.url.fr}"/>
</util:map>
</entry>
<entry key="logout">
<util:map map-class="java.util.HashMap">
<entry key="en" value="${exit.logout.url.en}"/>
<entry key="fr" value="${exit.logout.url.fr}"/>
</util:map>
</entry>
</util:map>
</beans>
import java.util.Map;
导入org.springframework.context.support.GenericXmlApplicationContext;
公开课考试{
公共静态void main(字符串[]args){
GenericXmlApplicationContext上下文=新的GenericXmlApplicationContext(“/application context.xml”);
Map externalUrlMap=(Map)context.getBean(“externalUrlMap”);
System.out.println(externalUrlMap.get(“privacy”).get(“en”);
System.out.println(externalUrlMap.get(“隐私”).get(“fr”);
System.out.println(externalUrlMap.get(“logout”).get(“en”);
System.out.println(externalUrlMap.get(“logout”).get(“fr”);
}
}
url.properties
map分析问题的方法是什么?我正在尝试提取第二个条目的值。key=“en”value=“${exit.logout.url.en}我不知道如何遍历这些值。externalUrlMap.get(urlType.get(“en”)
不起作用?当检查externalUrlMap时,调试器会怎么说。placesholder是否来自属性文件?如果是,直接访问properties对象是否会更容易?我正在测试。非常感谢。有一个问题我想我可以使用@Resource而不是GenericXmlApplicationContext来注入映射。对吗?@Resource应该可以。可能您还必须添加@Qualifier(“externalUrlMap”)。资源在没有添加@Qualifier(“externalUrlMap”)的情况下工作。再次感谢您的帮助。