1

В настоящее время я выполняю задачу повышения градации (struts2.0 to struts2.5). Я хочу заменить stuts dojo тегом struts-jquery.Struts2 jQuery autocompleter не работает

Здесь я столкнулся с проблемой при замене автозаполнения struts-dojo на автозаполнение struts-jQuery.

Получение ниже ответа от сервера:

[ 
    { 
    "firstName": "Bulwark Technologies LLC", 
    "partnerId": 925 
    }, 
    { 
    "firstName": "Bulwark Technologies LLC1", 
    "partnerId": 926 
    }, 
    { 
    "firstName": "Bulwark Technologies LLC2", 
    "partnerId": 927 
    } 
] 

Для отображения на стороне клиента я использую Struts2-JQuery-autocompleter -

<sj:autocompleter href="%{urlpartnerList}" list="%{partnerNameListBeanStruts2}" listValue="firstName" listKey="partnerId"/> 

Я получаю «неопределенные (несколько раз - на основе результата найденный в запросе на стороне сервера) "в текстовом поле.

Может кто-нибудь, пожалуйста, помогите здесь? Заранее спасибо.

enter image description here

+1

Я думаю, что ваше значение атрибута для 'list' неверно. Я всегда использую что-то вроде этого: '{" mylist ": [{" key ":" 1 "," value ":" Foo "}, {key:" 2 ", value:" Bar "}]}' и autocompleter: '' – beendr

+0

Спасибо, bother.I сделал так, как вы сказали, и теперь он работает отлично. Но есть также одна проблема. Когда я выбираю элемент, то при выборе он будет заполнять данные с id.Like я искал «Bar», тогда я выбираю bar из предложения, в текстовом поле он покажет 2 по выбору «bar». делайте здесь? Спасибо заранее. –

+1

Попробуйте использовать атрибут 'label', посмотрите [Showcase] (http://struts.jgeppert.com/struts2-jquery-showcase/index.действие) -> Виджеты -> Autocompleter -> Autocompleter JSON – beendr

ответ

0

Мои предложения в комментариях приведет вас в неправильном направлении, с этим <sj:autocompleter/> он должен работать прекрасно без изменения ответа сервера. Я испортил различные варианты, доступные для этого тега.

<sj:autocompleter href="%{jsonAction}" listKey="partnerId" listValue="firstName" name="firstname"/> 

, как я могу получить значение элемента этикетки?

Трюк с этим autocompleter есть, что listValue показано, как выбор в видимом текстовом поле, но listKey используется в качестве значения в скрытом поле. И это скрытое поле будет использовано для отправки значения обратно на сервер. Это должно также ответить на ваш вопрос:

<sj:autocompleter/> создаст следующий HTML код:

<input type="hidden" name="firstname" value="HERE_IT_WILL_PUT_THE_LIST_KEY"/> 
<input type="text" name="firstname_widget" value="HERE_IT_WILL_PUT_THE_LIST_VALUE"/> 

Таким образом, вы только должны установить listKey тег с именем списка свойств вы хотите иметь в качестве ответа.

Смежные вопросы