我有一个由以下定义的哈希图:
Map<String, Person> map = new HashMap<String, Person>();
它被一些数据填充。这是在 EJB bean 中。
在 JSF 中,我想以某种方式访问 Person 类的属性:
#{bean.map['key'].username}
但是 JSF 不允许我这样做。
例如,如果我用字符串替换 Person ,它就可以工作。
有什么帮助吗?
我有一个由以下定义的哈希图:
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}