Проблема с сериализацией в Struts2 JSON для автозаполнения jQuery-ui

Я пытаюсь использовать плагин Struts2 JSON для сериализации JSON для вызова автозаполнения jQuery-ui AJAX. Формат взят из: документы jQueryUI.

Массив объектов со свойствами label и value:

 [ { 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 с общедоступными геттерами/сеттерами.


person khhaaannnnn    schedule 04.01.2016    source источник


Ответы (1)


Плагин Struts2 JSON сериализует все ваши действия.

Если sponsors является List<AutoCompleteJqueryBean> (или каким-либо другим типом массива или коллекции) и вы хотите, чтобы он не возвращался в вашем результате, вам нужно установить его как корневой объект в конфигурации:

<result type="json">
    <param name="root">sponsors</param>
</result>
person Andrea Ligios    schedule 04.01.2016