2016-01-04 1 views
1

Я пытаюсь использовать плагин Struts2 JSON для сериализации JSON для вызова AJAX для автозаполнения jQuery-ui. Формат от: jQueryUI DocsПроблема с сериализацией с Struts2 JSON для jQuery-ui auto-complete

Массив объектов с ярлыком и значение свойства:

[ { 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?

Действие имеет массив автозаполненияJqueryBean с общедоступными геттерами/сеттерами.

ответ

2

Плагин Struts2 JSON выполняет сериализацию всего вашего действия.

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

<result type="json"> 
    <param name="root">sponsors</param> 
</result> 
Смежные вопросы