用于jQuery-ui的Struts2 JSON的序列化问题自动完成

时间:2016-01-04 16:10:15

标签: jquery json jquery-ui struts2 struts2-json-plugin

我正在尝试使用Struts2 JSON插件为jQuery-ui自动完成AJAX调用序列化JSON。格式来自:jQueryUI Docs

具有标签和值属性的对象数组:

 [ { label: "Choice1", value: "value1" }, ... ]

我有这个POJO:

public class AutoCompleteJqueryBean {

    private Long value;
    private String label;


    public Long getValue() {
        return value;
    }

    public void setValue(Long value) {
        this.value = value;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public AutoCompleteJqueryBean(String label, Long value){
        this.label = label;
        this.value = value;
    }
}

哪个序列化为此JSON:

{"sponsors":[{"label":{"label":"A Duplicate"},"value":{"value":410}},{"label":{"label":"A Duplicate 2"},"value":{"value":319}},{"label":{"label":"A Duplicate 3"},"value":{"value":128}},{"label":{"label":"A Duplicate 4"},"value":{"value":191}}]}

我也试过地图无济于事。如何强制jQuery自动完成格式?

该操作有一个AutoCompleteJqueryBean数组,带有公共getter / setter。

1 个答案:

答案 0 :(得分:2)

Struts2 JSON插件正在序列化您的整个行动。

如果sponsorsList<AutoCompleteJqueryBean>(或某种其他类型的数组或集合),并且您希望阻止在结果中返回它,则需要在配置中将其设置为根对象:< / p>

<result type="json">
    <param name="root">sponsors</param>
</result>