高分请ajax高手进来,问题很复杂!

no9988 2009-01-09 05:02:17

<SCRIPT LANGUAGE="JavaScript">
function CallBack(data) {
if (data.length == 0) {
alert("参数传递出现错误!");
}else{
for(var i=0;i<data.length;i++){
alert(data[i].Admin_Name); // 提示是undefined
//alert(data[i].id); // 这个可以正常显示
}
}
}
function Send(){
DwrTest.Send("test",CallBack);
}
</SCRIPT>


这个问题是在用dwr的时候碰到的。
js代码如上,我的返回的是一个list。里面放的Admin的对象。 Admin包含三个属性,id,Admin_Name,Admin_Pwd,
我 这样 alert(data[i].id); 可以显示id,id是int型,
但是我 alert(data[i].Admin_Name); 这样的就不能显示,Admin_Name 是 string类型!

我以前也发过一篇求助贴,最后的问题也是集中到了 只能返回 int 型, string boolean都不能返回。
http://topic.csdn.net/u/20081230/21/a0fd0423-18ee-425b-9cf7-e676349f429d.html

请高手帮忙解决!谢谢!

...全文
388 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tubage408 2009-01-13
  • 打赏
  • 举报
回复
其它的属性也可以这么访问试试看可以不,如果可以的话,那我觉得是js对复杂属性的访问方式做了限制,就像el中的一样
tubage408 2009-01-13
  • 打赏
  • 举报
回复
可以这么试试alert(data[i]['Admin_Name']);
anjing5566 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 no9988 的回复:]
引用 9 楼 flyrain2012 的回复:
可能命名问题,首字母别大写


你太牛了· ···
把开头改成小写就可以了!

不过我不明白
为什么 我的属性以大写开头就得不到数据?
我以前写别的bean的时候也这样写,没出现过这样的问题呀 !
为什么在ajax里面就行不通了·
[/Quote]

javascript是大小写区分的
no9988 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 flyrain2012 的回复:]
可能命名问题,首字母别大写
[/Quote]

你太牛了· ···
把开头改成小写就可以了!

不过我不明白
为什么 我的属性以大写开头就得不到数据?
我以前写别的bean的时候也这样写,没出现过这样的问题呀 !
为什么在ajax里面就行不通了·
xchh1220 2009-01-12
  • 打赏
  • 举报
回复
  Package 的命名
  Package 的名字应该都是由一个小写单词组成。

  Class 的命名
  Class 的名字必须由大写字母开头而其他字母都小写的单词组成

  Class 变量的命名
  变量的名字必须用一个小写字母开头。后面的单词用大写字母开头。

  Static Final 变量的命名
  Static Final 变量的名字应该都大写,并且指出完整含义。

  参数的命名
  参数的名字必须和变量的命名规范一致。


建议LZ看看编码规范
xchh1220 2009-01-12
  • 打赏
  • 举报
回复
可能命名问题,首字母别大写
no9988 2009-01-12
  • 打赏
  • 举报
回复
不好意思 ,前几天都不能上网,
现在我把具体的dwr里面 代码贴上来,麻烦大家在帮我看看


<dwr>
<allow>
<create creator="new" javascript="DwrTest">
<param name="class" value="com.Dao.DwrTest"/>
<include method="Send"/>
</create>
<convert match="com.Action.Admin" converter="bean" >
<param name="include" value="id,Admin_Name,Admin_Pwd" />
</convert>
</allow>

<signatures>
<![CDATA[
import java.util.*;
import com.Dao.DwrTest;
import com.Action.Admin;
DwrTest.Send(List<Admin>);
]]>
</signatures>

</dwr>
Ghost_520 2009-01-12
  • 打赏
  • 举报
回复
并不存在所谓的支持或者不支持什么的语法,只是 data[i].Admin_Name 这里的 Admin_Name 并不为 DWR 所认识的变量定义

的规范,你按驼峰命名规则来定义试试 ,就是 "Admin_Name" 写成 "adminName" ,在用 data[i].adminName 这样来调用。
no9988 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 anjing5566 的回复:]
引用 11 楼 no9988 的回复:
引用 9 楼 flyrain2012 的回复:
可能命名问题,首字母别大写


你太牛了· ···
把开头改成小写就可以了!

不过我不明白
为什么 我的属性以大写开头就得不到数据?
我以前写别的bean的时候也这样写,没出现过这样的问题呀 !
为什么在ajax里面就行不通了·


javascript是大小写区分的
[/Quote]

不是这个意思
它区分大小写,并不代表不能用大写!

但在这里 我用大写就得不到数据,用小写开头就可以得到!
  • 打赏
  • 举报
回复
alert没有重载对strig的操作?
zero1111 2009-01-10
  • 打赏
  • 举报
回复
你的Admin类在Dwr里配置了么? 应该暴露出来才可以在js里调用到的.
还有你提到的alert(data[i].Admin_Name);// 提示是undefined
是Admin_Name 为空也会undefined的,还要查一下你的数据.
再有,要是平凡使用Admin类,建议用DWR允许的简单类型,这样效率会快很多.
mysky191_chi 2009-01-09
  • 打赏
  • 举报
回复
你在DWR.XML中是怎么定义的?Admin对象的定义?帖出来看看
jinlking 2009-01-09
  • 打赏
  • 举报
回复
gz
no9988 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luxu001207 的回复:]
好像dwr是不支持这个东西
[/Quote]

不懂!
不支持什么东西 ?
Atai-Lu 2009-01-09
  • 打赏
  • 举报
回复
好像dwr是不支持这个东西
parss 2009-01-09
  • 打赏
  • 举报
回复
关注

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧