【发布时间】:2011-10-04 20:51:58
【问题描述】:
我对 sencha touch 获取服务器响应的问题之一感到非常痛苦。我有一个应用程序,我需要与我的服务器通信,而服务器又将与数据库交互并以 JSON 的形式提供信息。 现在,我的问题陈述是成功登录到应用程序需要加载模型的应用程序。模型使用代理下载 JSON 并在屏幕 UI 上呈现。问题从这里开始。
我正在使用 Servlet 来获取 JSON 服务。例如,我对 json 进行了硬编码。找到下面的 Servlet 代码。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginJSONServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginJSONServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
response.setContentType("application/json");
String jsonText = "[{\"quoteName\":\"Home care\",\"timeStamp\":\"May2011\"}]";
response.getWriter().write(jsonText);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
部署后在浏览器中将所需的 JSON 打印为 {"quoteName":"Home care","timeStamp":"May2011"}
现在,这是我的客户端煎茶触摸代码
这是我的商店
App.stores.SavedStore = new Ext.data.JsonStore({
model: 'SavedModel',
autoLoad: true
});
这是我的模型
App.models.SavedQuoteMod = Ext.regModel('SavedQuoteMod', {
fields: [
{name:'quoteName' , type: 'string' },
{name:'timeStamp' , type: 'string' }
],
proxy:{
type: 'ajax',
format: 'sencha',
url: 'http://localhost:8091/Sencha/LoginServlet',
reader: {
type: 'json',
root: 'data'
},
/* proxy:{
type: 'ajax',
url: 'http://172.16.30.18:8091/Sencha/JSONServlet',
reader: {type:'json'},
writer: {type:'json'},
}*/
});
我很困惑我必须使用 Ajax、JSONP 或其他任何代理请求类型。 我的代码不起作用。请帮我。
【问题讨论】:
标签: sencha-touch extjs