gpt4 book ai didi

java - 使用 servlet 填充 cq5 对话框中的下拉列表

转载 作者:行者123 更新时间:2023-12-01 13:07:32 25 4
gpt4 key购买 nike

这是我的下拉小部件结构,

    <chooseselect
jcr:primaryType="cq:Widget"
name="./sel"
options="/bin/demoslingservlet.json"
type="select"
xtype="selection">

re</chooseselect>

我能够访问下面的 servlet,servlet 中的代码如下:

@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}]} ,但是如何将此响应呈现给对话框中的下拉菜单。提前致谢。

最佳答案

您填充选项的格式错误。options供选择应采用以下格式

[
{
"value": 10,
"text": "A"
}, {
"value": 20,
"text": "B"
}
]

尝试生成上面这样的格式

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。

关于java - 使用 servlet 填充 cq5 对话框中的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23153416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com