我联系了支持团队,用几句话来说,“开箱即用”是不可能的。但我找到了一个解决办法。
我写了一个响应过滤器来捕捉请求的响应
/p8/openContentClass
. 结果显示,它的响应包含选项列表值:
{
"classes": [{
"parentClassId": "<PARENTCLASSID>",
"template_name": "<ENTRYTEMPLATE>",
}
],
"criterias": [, {
"settability": "readWrite",
"defaultOperator": "EQUAL",
"minValue": null,
"uniqueValues": true,
"orderable": false,
"choiceList": {
"choices": ,
"displayName": "CL_ToFilter"
},
"name": "<propertyName>"
}
]
}
重新格式化
"choices"
获取一级选项列表的条目确保在一级上显示。响应过滤器相关代码如下:
public class ChoiceListValuesResponseFilter extends PluginResponseFilter {
public String[] getFilteredServices() {
return new String[] { "/p8/openContentClass" };
}
public void filter(String serverType, PluginServiceCallbacks callbacks,
HttpServletRequest request, JSONObject jsonResponse) throws Exception {
JSONArray jsonProperties =
(JSONArray) jsonResponse.get("criterias");
Iterator it = jsonProperties.iterator();
while (it.hasNext()) {
JSONObject jo = (JSONObject) it.next();
if ("<PROPERTYWITHFILTEREDCL>".equals(jo.get("name"))) {
JSONObject choiceListJo = (JSONObject) jo.get("choiceList");
break;
}
}
}
}