JSF & Hashmap:访问值属性



我有一个由定义的哈希映射

Map<String, Person> map = new HashMap<String, Person>();

它由一些数据填充。这是在EJB bean中。

在JSF中,我想以某种方式访问类Person的属性,比如:

#{bean.map['key'].username}

但是JSF不允许我这么做。

例如,如果我用字符串替换Person,它就可以工作了。

有什么帮助吗?

解决方案可能是编写自己的自定义EL函数:

public static Object getMapValue(Map map, Object key) {
    return map.get(key);
}

然后你可以这样访问它:

#{fn:getMapValue(bean.map, 'key').username}

如果您不熟悉自定义el功能,请检查:Facelets el功能可以节省您的一天

在Bean 中编写一个函数

public Person getMapValue(String key)
{
        return map.get(key);
}

然后你可以这样访问它:

#{bean.getMapValue('key').username}

最新更新