ExtJS之Ext.Ajax.request方法如何返回值的处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ExtJS之Ext.Ajax.request方法如何返回值的处理相关的知识,希望对你有一定的参考价值。
function getStateCount(isId)
var url = "$Context/applice/kpi/targetBookList.action?Id="+isId;
Ext.Ajax.request(
url: url,
async : true,
success: function(resp)
var respText = Ext.util.JSON.decode(resp.responseText);
弹出respText时候是[object Object],[object Object]
alert(respText.tbSrsg);//这个直接就是undefined
本身的List我是在后台过的,代码如下:
if (plist.size()>0)
Struts2Util strus2util = new Struts2Util();
HttpServletResponse Response = strus2util.getResponse();
//ServletOutputStream os = Response.getOutputStream();
PrintWriter pw = Response.getWriter();
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setJsonPropertyFilter(new net.sf.json.util.PropertyFilter()
public boolean apply(Object source, String name, Object value)
if(name.equals("perTargetYear"))
return true;
else
return false;
);
net.sf.json.JSONArray ja=net.sf.json.JSONArray.fromObject(plist,jsonConfig);
//os.print(ja.toString());//需要将List转换成json
//os.close();
pw.print(ja.toString());
pw.close();
return null;
求高手指点 我该怎么出来这个数据?才可以让他把我List里面的对象变出来成为一个JSON类型的数据呢?
JSONObject array = JSONObject.fromObjec(model);
HttpServletResponse resp = ServletActionContext.getResponse();
PrintWriter out = null;
System.out.println("++++"+array.toString());
try
out = resp.getWriter();
out.print(array);
out.flush();
out.close();
catch (IOException e)
e.printStackTrace();
这时你就可以用
var respText = Ext.util.JSON.decode(resp.responseText);然后你可以用alert输出respText.total和respText.list[0].tbSrsg.相信你看到输出结果会豁然开朗的。追问
你所谓的Model是一个数组?还是?给Model是怎么赋值的呢?
追答Model是一个类啊
public class Model
private int total;
private List root; //Object 放你需要的那个类
public void setTotal(int total)
this.total=total;
.....
这个类必须这样有这样2个属性,名字不能改。
var ss=Ext.util.JSON.decode(resp.responseText);
ss点 什么什么的就可以用了 参考技术B 后台返回的是一个list,的数据转换成的json串.
var respText = Ext.util.JSON.decode(resp.responseText);
经过这句后respText 应该是一个数组.
if(respTest.length)
alert(respText[0].tbSrsg)//试试这样行不
将 EXTJS AJAX 方法从 GET 更改为 POST 将导致任何性能问题
【中文标题】将 EXTJS AJAX 方法从 GET 更改为 POST 将导致任何性能问题【英文标题】:Changing EXTJS AJAX method from GET to POST will cause any performance problems 【发布时间】:2013-08-27 01:41:17 【问题描述】:我有一个这样的 extjs 请求:
Ext.Ajax.request(
url: someUrl,
method: "GET",
params: paramArray,
success: function(response)
var responseText = response.responseText;
//DO STUFF
,
failure: function(response )
// DO STUFF
); // end of ajax call
现在因为方法是“GET”,所以 url 中的 pf 参数数量是有限的。解决这个问题的最佳方法是什么?如果我只是将其更改为“POST”,它会导致任何副作用吗? (性能差等)。该方法在逻辑上应该是“GET”,因为它不是更新,只是获取,但为了解决我的参数问题,我想更改为“POST”。
除非是诅咒,否则这个问题有一个标准的解决方案。
【问题讨论】:
【参考方案1】:我找到了答案here
POST 的性能比 GET 差
【讨论】:
以上是关于ExtJS之Ext.Ajax.request方法如何返回值的处理的主要内容,如果未能解决你的问题,请参考以下文章
逆向工程使用 Ext.Ajax.request 的跨域 POST 请求
Ext Js,Ext.Ajax.request 在移动设备上不起作用