我正在寻找一种方法来使用来自服务器的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);
}
}
现在我不想使用该文件,但我正在寻找一种直接从服务器检索数据的方法。有人知道我是怎么做到的吗?
答案 0 :(得分:1)
您可以考虑在服务器上创建一个Servlet,它根据请求中的查询参数使用XML进行响应。
答案 1 :(得分:1)
我是第二个Everett Toews,您可以将data-url设置为
"http://yourServer:8080/webappName/servletName?query=yourQuery"
现在你要做的就是获取传递给servlet的参数(在本例中为“query”)并读取其值。根据其值,您可以修改响应,如:
PrintWriter out = resp.getWriter();
out.print(xml);
out.flush();
编写这样的servlet非常简单 - 只需扩展javax.servlet.http.HttpServlet类并实现javax.servlet.Servlet类。
通过覆盖doGet()方法,您可以做任何您想做的事情。
您可能要做的最后一件事是在web.xml中创建一个servlet-mapping,如
<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>