【发布时间】:2014-04-28 20:40:00
【问题描述】:
我有一个@SessionScoped bean,我想将它用作映射,以便我可以在视图中使用 EL 动态获取它的属性。
myBean['someDynamicProperty']
我通过实现 java.util.Map、使用我的应用程序逻辑实现 get(Object o) 并在所有其他覆盖的 Map 方法中抛出 UnsupportedOperationException 来实现这一点。
@SessionScoped
@Named
public class MyBean implements Map<String, String> {
@Override
public String get(Object key) {
// Application logic here
}
@Override
public boolean containsKey(Object key) {
throw new UnsupportedOperationException();
}
// All other map methods overriden like containsKey
}
这些属性是只读的,我只需要使用我的代码中的 get 方法,但不实现其他 Map 方法是否安全?
有没有更好的方法在 bean 中为 EL 定义动态属性?
【问题讨论】: