急!!!!! Ext发送的Ajax在前台怎么接受后台传来的JSON对象(List集合) 修改我的代码也行,好了再加分
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急!!!!! Ext发送的Ajax在前台怎么接受后台传来的JSON对象(List集合) 修改我的代码也行,好了再加分相关的知识,希望对你有一定的参考价值。
会的话发下前台的script里面的Ajax代码和后台的Action代码(我现在用的struts1)
————————————————————————————————————
前台的代码:
Ext.Ajax.request(
url : '<%=request.getContextPath()%>/eHR.pfmc.baseSet.period.action.PeriodAction.do?method=insertPeriod',
method:'post',
params :
name : name,
startdate : startdate,
closedate : closedate,
typeName : typeName
,
success : function(response,config)
var json=Ext.util.JSON.decode(response.responseText);
);
-————————————————————————————————————
后台的代码:
(list是一个集合)
QueryResult result = new QueryResult(list);
response.setContentType("text/json;charset=UTF-8");
response.getWriter().write(result.toJSONString());
后台:
我这里的User有id,name,password。添加它们的get ,set方法。
response.setContentType("text/plain;charset=UTF-8");
User user=new User(1,"zhou","123");
List<User> list=new ArrayList<User>();
list.add(user);
JSONArray json=JSONArray.fromObject(list);
response.getWriter().print(json.toString());
前台:
Ext.Ajax.request(
url:xxurl,
success:function(response)
var result=Ext.decode(response.responseText);
Ext.Msg.alert('信息',result[0].id+result[0].name+result[0].password);
,
failure:function(response),
params:name : 'value'
)
因为这里我只添加了一个User,所以取的时候就是第一个了result[0],这个其实就是一个user了。本回答被提问者采纳 参考技术B 前台:
var json=JSON.parse(response.responseText);
for(var i=0;i<json.length;i++)
var username=json[i].username;
username就是前台要的值
后台:
再设计一个Item公共类
private String username; //get、set方法
Java:
for(.list.length;..)
Po po=(Po)list.get(i);
Item item=new Item();
item.setusername();
list.add(item);
Ajax(list);
Ajax方法
public void Ajax(List list)throws IOException,ParseException
ServletActionContext.getResponse().setContentType("text/html");
ServletActionContext.getResponse().setContentType("utf-8");
ServletActionContext.getResponse().setContentType("Cache-Control","no-cache");
JSONArrayjson=JSONArray.fromObject(list);
ServerletActionContext.getResponse().getWriter().printf(json.toString());
ServerletActionContext.getResponse().getWriter().getWriter.flush();
ServerletActionContext.getResponse().getWriter().getWriter.close();
后台这个json.toString() 和 前台json[i].username 就是你想知道怎么接受的机制
其中需要一个json2.js文件,留个地址,我可以发给你,最后祝你成功! 参考技术C 比如你返回的数据是
result:
listA:[
a:'',
b:'',
listB:[
]
]
那遍历代码如下
var o = Ext.decode(response.responseText);
var listA= o.result;
for(var i=0;i<listA.length;i++)
var listB = listA[i]["listB"];
for(var j=0;j<listB.length;j++)
var objB = listB[j];
alert(objB.c);
----
注意:代码未测试。。
asp 前台ajax提交的blob数据在后台怎么接受
我做了图片预览并上传程序,但360上图片内容换成为base64编码,然后我把base64转换文件对象(blob),现在不知道怎么抓取数据?前台提交的数据格式是 Blob(23943) size: 23943, type: "image/jpeg"
在后台formsize=request.totalbytes
formdata=request.binaryread(formsize)用这个可以抓取,但得不到正确的文件内容,
你应该直接post图片的字节流或者base64字符串或者使用使用前后端协调的协议来封装数据,这也是序列化的意义所在. 参考技术A 应该还需要base64解码才行的。
以上是关于急!!!!! Ext发送的Ajax在前台怎么接受后台传来的JSON对象(List集合) 修改我的代码也行,好了再加分的主要内容,如果未能解决你的问题,请参考以下文章
ajax传值和返回值问题: 能够从前台传值给后台,但是后台的值怎么传给前台呢? 代码见补充(求详细解答