2010-06-05 3 views
0

서버의 XML 응답으로 ListGrid를 채울 방법을 찾고 있습니다. smartGWT : 서버에서 데이터를 검색하여 listGrid를 채 웁니다.

는 내 서버 응답의 예입니다

<?xml version="1.0" encoding="UTF-8"?> 
    <tbody id="tbody"> 
    <tr> 
     <word>The</word> 
     <frequence>12</frequence> 
    </tr> 
    <tr> 
     <word>best</word> 
     <frequence>3</frequence> 
    </tr> 
    ... 

그리고 이것은 내가하는 XML 결과를 저장 한 파일 (item.xml)를 사용하여 ListGrid을 채울 수있는 방법입니다 :

public class Frequenze extends DataSource { 
    private static Frequenze instance = null; 

     public static Frequenze getInstance() 
     { 
     if (instance == null) { 
      instance = new Frequenze("frequence"); 
     } 
     return instance; 
     } 

     public Frequenze(String id) 
     { 
      setID(id); 
      setRecordXPath("//tr"); 
      DataSourceTextField wordField = new DataSourceTextField("word", "Word"); 
      wordField.setRequired(true); 

      DataSourceIntegerField frequenceField = new DataSourceIntegerField("frequence", "Frequence"); 
      frequenceField.setRequired(true); 

      setFields(wordField, frequenceField); 

      setDataURL("ds/item.xml"); 
      setClientOnly(true); 
     } 
} 

이제 파일을 사용하지 않겠지 만 서버에서 직접 데이터를 검색하는 방법을 찾고 있습니다. 아무도 내가 이걸 어떻게 알아?

답변

1

요청의 쿼리 매개 변수를 기반으로 XML로 응답하는 서블릿을 서버에서 만들 수 있습니다.

1
내가 두 번째 에버렛 Toews, 당신은

"http://yourServer:8080/webappName/servletName?query=yourQuery" 

당신이 ("쿼리"이 경우) 서블릿에 전달 된 PARAM을 받고 지금해야 할 일은로 데이터 URL을 설정하고 읽을 수 있습니다

의 값. 그 값에 따라하는 것은 당신이 좋아하는 응답을 수정할 수 있습니다 : 같은 서블릿을 작성

PrintWriter out = resp.getWriter(); 
out.print(xml); 
out.flush(); 

은 매우 간단합니다 - 단지 인 javax.servlet.http.HttpServlet 클래스를 확장하고 javax.servlet.Servlet 클래스를 구현합니다.

doGet() 메서드를 재정 의하여 원하는 작업을 수행 할 수 있습니다. 당신이 할 수

마지막 것은

<servlet> 
    <servlet-name>myXmlServlet</servlet-name> 
    <servlet-class>your.package.servlets.MyXMLServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>myXmlServlet</servlet-name> 
    <url-pattern>/query2xml</url-pattern> 
</servlet-mapping> 
같은 web.xml에 서블릿 매핑을 만드는 것입니다
관련 문제