[英]smartGWT: retrieve data from server to populate a listGrid
我正在尋找一種使用服務器的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);
}
}
現在,我不想使用該文件,但是我正在尋找一種直接從服務器檢索數據的方法。 有人知道我怎么得到這個嗎?
您可以考慮在服務器上創建一個Servlet,該Servlet基於請求中的查詢參數以XML進行響應。
我第二個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映射,例如
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.