[b]1:需要返回的JavaBean[/b]:
[code="java"]
package cn.dzq.test;
public class info {
private long id;
private String name;
private int sex;
private String email;
private String tel;
private String addTime;
private String descn;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddTime() {
return addTime;
}
public void setAddTime(String addTime) {
this.addTime = addTime;
}
public String getDescn() {
return descn;
}
public void setDescn(String descn) {
this.descn = descn;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof info){
info in=((info)obj);
if((in.getId()==this.id)&&(in.getName().equals(this.name))&&(in.getSex()==this.sex)&&(in.getDescn().equals(this.descn))&&(in.getAddTime().equals(this.getAddTime()))&&(in.getTel().equals(this.tel)))
{
return true;
}
}
return false;
}
@Override
public String toString() {
return this.id+"\t"+this.name;
}
}
[/code]
[b]2:Dwr调用的后台方法类:[/b]
[code="java"]
package cn.dzq.test;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class InfoManager extends HibernateDaoSupport{
public List getResult() {
List list=this.getHibernateTemplate().find(" from info");
for(int i=0;i<list.size();i++){
System.out.println(i+":\t"+((info)list.get(i)).getName());
//验证返回的List不为空
}
return list;
}
}
[/code]
[b]3:Spring,hibernate,以及dwr与sring的整合的配置都没有问题,我把dwr的配置片段放在下面(其他部分没有错误)[/b]
[code="java"]
[/code]
[b]4:前台ExtJs测试代码片段(我前台是个grid想在这里直接用store.loadData(data)装载数据,):[/b]
[code="java"]
Ext.onReady(function() {
var cm = new Ext.grid.ColumnModel([
{
header : '编号',
dataIndex : 'id'
},
{
header : '名称',
dataIndex : 'name'
},
{
header : '性别',
dataIndex : 'sex'
},
{
header : '邮箱',
dataIndex : 'email'
},
{
header : '电话',
dataIndex : 'tel'
},
{
header : '添加时间',
dataIndex : 'addTime'
},
{
header : '备注',
dataIndex : 'descn'
}
]);
var store = new Ext.data.JsonStore({
fields : ['id', 'name', 'sex', 'email', 'tel','addTime', 'descn']
});
// 调用DWR取得数据
info.getResult(function(data) {
alert(data);//问题就在和这里,alert的只有一个逗号
for(var i=0;i<data.length;i++){
alert(data[i]);
/*每次循环的结果都是null,但当换成String是可以打出来 我分析是在这里不识别后台的bean
但是我的都配置了啊,不知道什么原因???*/
}
alert("data:" + data);
store.loadData(data);
});
var grid = new Ext.grid.GridPanel({
renderTo : 'grid',
store : store,
cm : cm
});
})
[/code]
[b]5:我的问题是:[/b]
这个时候前台答应出来的data只有一个逗号,循环data发现每项都是空的,但这个时候后台返回的list确实不是空的。
我另外写了测试代码,要是返回的是基本类型,或者是String在前台就可以直接调用,那么对于这种bean的返回怎么处理?
我配置了转换器:
怎么没有起到作用啊?
请各位帮忙看看,现在这里谢了。
[b]问题补充:[/b]
楼上这位哥们【hiphunter921 (初级程序员)】
你的写法我试过了
还是不对的
问题的本质不是怎么在前台循环后台来的List
而是在前台就根本不识别后台的JavaBean
即:List
[b]问题补充:[/b]
哈哈 太幼稚了 都是粗心惹得祸
我一直把
看成:
多谢路上哥们(hiphunter921 )指点
散分了