Плагин Ajax jQuery со Struts 2

Я использую jar-файлы плагинов Ajax jQuery со Struts 2. Я использовал тег выбора Ajax для заполнения списка, но список не заполняется. если я использовал тег <sj:autocompleter>, он работает нормально.

Это мой код:

<sj:select name="countryId" list="countryList" listKey="id" listValue="name" 
                headerKey="" headerValue="--Select Country--" 
                onchange="document.forms[0].action='city_countryChange'; document.forms[0].submit(); return true;" 
                required="required"></sj:select>

что не так с тегом <sj:select>?


person Uday    schedule 08.11.2013    source источник
comment
покажите свой код действия и конфигурацию результатов Struts (xml/annotation)   -  person coding_idiot    schedule 09.11.2013


Ответы (1)


Когда вы использовали sj:autocompleter и говорите, что он работает нормально, вы использовали атрибут href. Атрибут sj:select href также можно использовать для заполнения HTML-тега select, который отображается с помощью sj:select. Набор атрибутов немного отличается для каждого тега, и атрибут href также отличается от тега HTML select.

Атрибут href доступен и используется обоими тегами, и вы должны предоставить результат JSON, возвращаемый действием, которое заполняет тег sj:select. Но если вы используете атрибут autocomplete=true, тогда sj:select ведет себя как sj:autocompleter и создает тег input вместо тега select. Вы должны определить, какой тег HTML вам нужен для вывода.

Игра с атрибутами может кардинально изменить отображаемый HTML. Если вы используете атрибут list с тегом sj:select и не используете атрибут autocomplete, то при выполнении результата будет отображаться простой select с options. Это то же самое, что и порядковый номер s:select. Таким образом, вы должны предоставить геттер для значения атрибута list, например

public List<Country> getCountryList() {
  return countryList;
} 

Компонент Country должен содержать свойства id и name, чтобы он также был доступен для OGNL.

person Roman C    schedule 08.11.2013
comment
Хорошо, но я не могу получить аннотацию @Actions, не знаю почему. Дело в том, что я использую jar-файл JSON-plugin 2.3.1 с Sturts2-core 2.3.14. - person Uday; 08.11.2013
comment
Вы не должны использовать разные версии библиотек фреймворка. - person Roman C; 08.11.2013
comment
Тогда какую версию плагина мне следует использовать с банкой Struts2-core-2.3.14?? - person Uday; 08.11.2013
comment
struts2-json-плагин-2.3.14.jar - person Roman C; 08.11.2013
comment
Версия jar Struts2-json-plugin-2.3.13 также используется, но в аннотации @Action есть только атрибуты INPUT, OUTPUT и fault. - person Uday; 08.11.2013
comment
Я видел пример в этой ссылке code.google.com/p/struts2-jquery /wiki/SelectTag они используют значение и атрибут результата. - person Uday; 08.11.2013
comment
Хорошо, если вы хотите их использовать, вы должны вернуть результат JSON. - person Roman C; 08.11.2013