我有一个由定义的哈希映射
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}