1

현재 struts up-gradation 작업 (struts2.0에서 struts2.5로)을 수행하고 있습니다. struts dojo 태그를 struts-jquery로 대체하려고합니다.Struts2 jQuery 자동 완성이 작동하지 않습니다.

여기 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

고맙습니다. 당신이 제안한대로 끝냈습니다. 또한 하나의 이슈가 있습니다. 선택에서 요소를 선택하면 ID로 데이터를 채 웁니다. "바"를 검색 한 다음 제안에서 막대를 선택하고, 텍스트 상자에서 "막대"선택시 2를 표시합니다. 여기있어? 고마워. –

+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 태그를 설정해야 그것은 또한 당신의 질문에 대답해야한다.