您的位置:首页 > Web前端 > JQuery

浅谈jquery ajax 解析list对象

2014-04-26 17:19 507 查看
之前是用ssh框架搭建程序,在action中从数据库返回List<article> , article是pojo对象,包含用户名,密码等属性。返回之后,打算返回给前台ajax读取。前台是触动点击事件,然后从后台获取返回到前台,但是问题就来了,无论如何,前台ajax都无法获取,贴上之前写的代码。一直找不到错误。

前台action ,名称为personinfoaction,

public String execute() throws Exception {

List<Article> article ;

username = article = articleService.queryMyFriendinfo(username, index, max);

JSONArray jsonArray=new JSONArray();

jsonArray=JSONArray.fromObject(article);

}

省略了无关代码。

list 返回的数据经过json格式化之后,格式打印出来如下:

[{"content":"<p> today is 4.11</p>","date":"2014-04-11","hasread":0,"id":25,"title":"4.11","username":"123"}]

大家可以仔细看看 ,这是一连串list,我只留下第一个对象。其他都一样,所以就不复制了

在struts配置了、<action name="PersonInfoCenter" class="PersonInfoCenterAction" >

<result type="json" >

<param name="root">jsonArray</param>

</result>

</action>

但jsp界面就收不到、总是在这行显示for(var i= 0; i< dataRole.length;i++) cannot read property lenth of null , 我是用chrome 来观察js的,jsp中ajax代码如下:

function doStart()

{

$.ajax({

type: "GET",

url: "PersonInfoCenter.action",

data: "name=zah",

dataType: "json",

success:function(data){ //成功的处理函数

var dataRole = eval(data);

for(var i= 0; i< dataRole.length;i++)

{

var html = "<tr><td>";

html = html + dataRole[i].title+"</td><td>";

}

}

});

}

写得有点乱,如果了解点jquery ajax应该看着比较快,如果不了解可以先大致看看基本知识。

后来实在没法,弄了1天,到CSDN发帖询问,

得到的答案是这样的:

Struts对ajax和json的支持不好,建议你不要用<result type="json" >这种标签了,告诉你简单的解决办法:

1.PersonInfoCenter.action 这个应该是你Ajax的入口Action,你在struts.xml只需要配置<action></action>,不需要配置这个action的result,在你的Action里面return null。

2.数据到前台的问题是通过流解决的, jsonArray=JSONArray.fromObject(article); 得到你的Json字符串之后写这段代码:

Java code

?
这样问题就解决了,你在前台alert一下ajax回调函数的参数,就能看到响应文本了。你也可以通过firebug去看你的完整的get请求的过程,包括请求的参数以及前台得到的响应。

之后修改之后,一切OK,
我之前也查了不少资料,按照资料上面写的却依然无法输出,也许真是支持不好的问题。反正现在也不了解,总之结果出来就好。

之前本来打算用javascript做输出回调内容,但是资料不多,也没什么好的例子,后来又不打算转换Json,又一直在弄,所以这次得出结论,下次修改Bug,尽量往多条路思考,尽量用例子多和比较成熟的方案,这样有问题也好解决、

因为是新手、只对ssh框架了解些、js和jquery都不熟、查了2天也熟悉了不少、所以最后还有个结论是使用一样东西最好还是了解下基本内容、不然不知如何下手、之前提这个例子的帖子在这里:http://bbs.csdn.net/topics/390770171?page=1#post-397270174

也可以去看看、
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐