0

我正在寻找一种使用来自服务器的 XML 响应填充 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);
      }
}

现在我不想使用该文件,但我正在寻找一种直接从服务器检索数据的方法。有谁知道我怎么得到这个?

4

2 回答 2

1

您可以考虑在您的服务器上创建一个 Servlet,该 Servlet 根据请求中的查询参数使用 XML 进行响应。

于 2010-06-05T19:20:19.110 回答
1

我第二个 Everett Toews,您可以将 data-url 设置为

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

您现在要做的就是获取传递给 servlet 的参数(在本例中为“查询”)并读取其值。根据其值,您可以修改响应,例如:

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

编写这样的 servlet 相当容易——只需扩展 javax.servlet.http.HttpServlet 类并实现 javax.servlet.Servlet 类。

通过覆盖 doGet() 方法,您可以做任何您想做的事情。

您可能想要做的最后一件事是在 web.xml 中创建一个 servlet 映射,例如

<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>
于 2010-07-15T14:46:22.063 回答