【问题标题】:Populate DropDown with JSON in Java在 Java 中使用 JSON 填充 DropDown
【发布时间】:2017-03-20 23:46:35
【问题描述】:
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"}}

【问题讨论】:

  • 1.你JSON的结构是什么?请举个例子。 2. 这个 JSON 将如何提供给您的代码(作为参数传递,从某处加载,由容器注入?

标签: java json xhtml javabeans bootsfaces


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-09
    • 2013-06-10
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多