首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用servlet在cq5对话框中填充下拉列表

使用servlet在cq5对话框中填充下拉列表
EN

Stack Overflow用户
提问于 2014-04-18 11:42:44
回答 1查看 2K关注 0票数 0

这是我的下拉部件结构,

代码语言:javascript
复制
    <chooseselect
                    jcr:primaryType="cq:Widget"
                    name="./sel"
                    options="/bin/demoslingservlet.json"
                    type="select"
                    xtype="selection">

    re</chooseselect>

Im能够访问以下servlet,servlet中的代码如下所示:

代码语言:javascript
复制
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse   response) throws ServletException, IOException
{

JSONObject json = new JSONObject();
JSONArray jsonArray = new JSONArray();
HashMap hashMap1 = new HashMap();
HashMap hashMap2 = new HashMap();

hashMap1.put("A", 10L);
hashMap2.put("B", 20L);
jsonArray.put(hashMap1);
jsonArray.put(hashMap2);

json.put("jsonarray", jsonArray);
PrintWriter printWriter = response.getWriter();
    printWriter.print(json);
    printWriter.flush();
    }

我能够在响应中看到输出{"jsonarray":{"A":10},{"B":20}},但是如何将此响应呈现给对话框中的下拉列表。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-18 12:16:15

填充选项的格式是错误的。用于选择的选项应采用以下格式

代码语言:javascript
复制
[
    {
        "value": 10,
        "text": "A"
    }, {
        "value": 20,
        "text": "B"
    }
] 

尝试像这样生成上面的格式

代码语言:javascript
复制
StringWriter writer = new StringWriter();
TidyJSONWriter json = new TidyJSONWriter(writer);
json.array();
/* loop through your options and create objects as shown below */
json.object();
json.key("text");
json.value("A");
json.key("value");
json.value(10);
json.endObject();

json.object();
json.key("text");
json.value("B");
json.key("value");
json.value(20);
json.endObject();
/* end your array */
json.endArray();
response.getWriter().write(writer.toString());

然后,选择小部件将在下拉列表中显示json。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23153416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档