2014-10-22 4 views
1

sj:autocompleter을 사용하여 텍스트 상자에 대한 제안 목록을 표시하려고합니다. jsp에서 데이터를 하드 코딩하면 잘 동작합니다.동적 목록이있는 sj : autocompleter를 사용하여 텍스트 상자 자동 완성

<sj:autocompleter name="fruitNames" 
        list="{'apple', 'banana', 'orange', 'apricot'}" 
        label="Fruit Names"> 
</sj:autocompleter> 

하지만 액션 클래스에서 제안 목록을 동적으로 가져오고 싶습니다. 나는이 일을 시도했지만 값을 얻지 못하고있다. 내 액션 클래스에서

<sj:autocompleter name="fruitNames" list="fruitslist" 
    label="Fruit Names"> 
</sj:autocompleter> 

public String execute() { 
    fruitslist= new ArrayList<String>(); 
    fruitslist.add("Apple"); 
    fruitslist.add("Banana"); 
    fruitslist.add("Orange"); 
    fruitslist.add("Apricot"); 
} 

도와주세요.

답변

1

당신이 게터이 있는지 확인하십시오 : 당신이 당신의 struts.xml를 게시하고 지금은 당신이 JSON을 사용하려는 것이 분명하기 때문에

public List<String> getFruitslist() { 
     return fruitslist; 
    } 

는 코드를 변경해야합니다. 이전 답변은 기본 Action에서 표준 Array를 참조했습니다. JSON 동작의 경우에, 당신은 별도의 JSON 조치를 가리 키도록 Autocompleter에의 href 속성에 URL을 지정해야합니다에

<s:url var="remoteurl" action="ajaxAction"/> 
    <sj:autocompleter 
     id="fruitslist" 
     href="%{remoteurl}" 
     delay="50" 
     loadMinimumCount="2" 
    /> 

는 그런 다음 JSON로 결과를 설정해야하고 root 오브젝트 당신의 배열은 다음과 같습니다 :

<action name="ajaxAction" class="org.struts.action.AjaxJsonAction"> 
     <result name="success" type="json"> 
      <param name="root"> 
       fruitslist 
      </param> 
     </result> 
    </action> 

강력하게 how the Struts2-JSON plugin works을 읽어 보시기 바랍니다.

+0

나는이 일을 시도했지만 여전히 작동하지 않습니다. 내가 뭔가를 놓치고 있는지 나는 모른다. struts.xml에서 수행해야하는 다른 구성이 있습니까? – AFW

+0

struts.xml을 표시하십시오 –

+0

\t \t <결과 이름 ="성공 "> textboxAjax.jsp는 AFW