AEM6,json下拉列表:想要仅在下拉列表中填充值而不是文本

时间:2016-01-28 12:24:18

标签: content-management-system cq5 aem

我有一个json结构如下: [{“text”:“US”,“value”:“United Sates”},{“text”:“CA”,“value”:“Canada”}]

我创建了一个servlet来填充组件的下拉列表。 我的servlet:

           while (node.hasNext()) {
            Node child = node.nextNode();
            if (child.hasProperty("nationcode") && child.hasProperty("nationname")) {
                JSONObject json = new JSONObject();
                json.put("text", child.getProperty("nationcode").getValue().getString());
                json.put("value", child.getProperty("nationname").getValue().getString());
                jsonArray.put(json);
            }
        }

response.setContentType( “应用程序/ JSON”); 。response.getWriter()写(jsonArray.toString());

我的组件有options =“bin /”

我尝试仅填充值,但它只能在下拉列表中填充“text”。如何确保我的组件下拉列表仅填充值而不填充键(文本)?

1 个答案:

答案 0 :(得分:0)

我已经实现了类似的方法,并记住渲染您显示的格式不起作用。我想我提取了geometrixx在其下拉列表中使用的格式(不确定确切的路径)

我用作响应的JSON格式是

[{"text":"US","value":"United States","qtip":""}, {"text":"CA","value":"Canada","qtip":""}]

我有了所需详细信息的列表 我在下面使用了渲染所需的JSON格式

for (Object object : allObjects) {
                    for (int i = 0; i < 3; i++) {
                        jsonOut.put("qtip", "");
                        jsonOut.put("text", object.getTitle());
                        jsonOut.put("value", object.getDescription());
                        response.setContentType("application/json");
                        response.setCharacterEncoding("utf-8");
                        log.debug("jsonOut is {}", jsonOut);
                    }
                    }

这对我有用。