我有一个带有HashMap class
的Java Web应用程序来存储大约20个不同的网站,其中密钥是特定代码:
例如代码:AB网站:http://www.somewebsiteforAB.com
我通过另一个HashMap key
生成代码(Java Class
),该代码在JSP中显示,供用户显示。
我试图了解如何通过这种动态'从JSP到HashMap的变量返回相关值。
我的Java class
是:
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Iterator;
import java.util.Set;
public class FaMap {
// Initialisers a static, immutable map containing relevant web sites
private static final Map<String, String> fMap;
static {
/* Declaring the HashMap*/
Map<String, String> aMap = new HashMap<String, String>();
/* Adding elements to HashMap*/
aMap.put("AB", "https://www.somewebsiteforAB.com/");
aMap.put("CD", "https://www.somewebsiteforCD.com/");
aMap.put("EF", "https://www.somewebsiteforEF.com/");
aMap.put("GH", "https://www.somewebsiteforGH.com/");
fMap = Collections.unmodifiableMap(aMap);
/* Display content using Iterator*/
Set<Entry<String, String>> set = fMap.entrySet();
Iterator<Entry<String, String>> iterator = set.iterator();
while (iterator.hasNext()) {
Entry<String, String> mentry = iterator.next();
}
}
}
上面的类将使用类中的System.out.println语句打印所有或任何指定键的键和值。但是,如何将映射传递给动态生成的密钥以提取相关值并将其传递回JSP。
我是否需要编写另一个接受密钥作为参数的方法并将其传递给地图?
答案 0 :(得分:2)
首先,需要创建动态var。例如:
<c:set var="myVar" value="AB"/>
一旦你拥有了这个,并拥有你的地图实例(让我们称之为fMap)你就可以像在Java中一样调用它。例如:
<c:set var="myWebsite" value="${fMap.get(myVar)}"/>
您还需要一种可以访问地图的pulbic Java方法。例如:
public Map<String, String> getMap() {
return fMap;
}
答案 1 :(得分:1)
是的,您可以创建一个新方法来接收JSP中显示的密钥。
这样的事情:
public String getValueWithKey(String keyFromJSP) {
return fMap.get(keyFromJSP);
}