在 JSF2 中通过 EL 访问映射中的值



版本:

Aapche MyFaces 2.1.14

富人脸 4.3.5

问题:

我有一个实现地图接口的类,如下所示:

public class FormStore implements Map {

    private Map values; 

    public Object get(Object key) {
        return values.get(key);
    }
    public Object put(Object key, Object value) {
        return values.put(key, value);
    }
}

我使用此映射将所有提交的表单值存储在我的应用程序中,并在facelet中访问,如下面的facelet代码所示:

 <h:inputText id="phone" value="#{formStore['phone']}" size="12" maxlength="20" required="true">

其中formStore是上面的Java类。

现在我在上面的 java 类中添加了另一个 Map,如下所示,它有一些特殊目的。

public class FormStore implements Map {

private Map values; 
private Map additionalValues;

public Object get(Object key) {
    return values.get(key);
}
public Object put(Object key, Object value) {
    return values.put(key, value);
}
//getter and setter method for additionalValues also added 

}

问题是我无法从EL访问此新地图。我尝试了以下选项:

1)<h:inputText id="phone" value="#{formStore.additionalValues['phone']}" size="12" maxlength="20" required="true">
2)<h:inputText id="phone" value="#{formStore.[additionalValues]['phone']}" size="12" maxlength="20" required="true">
3)<h:inputText id="phone" value="#{formStore[additionalValues]['phone']}" size="12" maxlength="20" required="true">

对于每个选项,它调用FormStore.get方法,并带有key = additionalValues

是否可以从类访问附加值映射FormStore.java

请帮忙。

这应该有效

<h:inputText id="phone" value="#{formStore.getAdditionalValues()['phone']}" size="12" maxlength="20" required="true">

最新更新