1
private Map<String, Map<String, String>> data = new HashMap<String,
Map<String, String>>();
private String type;

private Map<String, String> types;

@PostConstruct
public void init() {
    formSchema = new JSONObject();
    types = new HashMap<String, String>();
    types.put("name", "name");
    types.put("address", "address");
    types.put("number", "Number");

}

public Map<String, Map<String, String>> getData() {
    return data;
}

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

public Map<String, String> getTypes() {
    return types;
}

这是我的下拉菜单代码。

我将 xhtml 中的值传递为-

<b:selectOneMenu id="type" value="#{dropdownView.type}"
                style="width:150px">

        <f:selectItem itemLabel="Select type" itemValue=""
                    noSelectionOption="true" />
                <f:selectItems value="#{dropdownView.types}" />
            </b:selectOneMenu>

这适用于硬编码值,但我需要使用 JSON 模式填充下拉菜单。

我只是一个初学者。任何人都可以帮助我了解如何将 Json 值(例如名称、地址和号码)发送到下拉菜单并在下拉菜单中显示值。任何帮助将不胜感激。先感谢您。

以发送json格式为例——

{"form":{"name":"abc","id":"number","date":"true","comment":"largeText"}}

4

1 回答 1

0

想了想,得出的结论是 BootsFaces 应该不支持这个功能。所以我们不会在 BootsFaces 中实现它。那是因为 Json 是一种非常灵活的格式。b:selectOneMenu仅支持由键值对组成的简单列表。显然,灵活的 Json 格式与b:selectOneMenu. 请注意:我们应该如何处理额外的字段datecomment您的示例?

但是,您可以自己将 Json 格式转换为键值对。getData()一种简单的方法是在您的示例方法中实现这样的转换器。在实际示例中,您可能会使用缓存方法,因为getData()它经常被调用。

于 2016-11-08T23:48:57.893 回答