刚用DWR来做项目,JS的代码能进入JAVA的方法,但是回调时不知道该怎么取出其中的东西,返回的是一个我自定义的对象。配制如下:
dwr.xml
<dwr>
<allow>
<create creator="spring" javascript="ConsumeManager" >
<param name="beanName" value="consumeManager"/>
<include method="queryConsumeInfo"></include>
</create>
<convert converter="bean" match="cn.phonekit.commons.dao.support.Page">
<param name="include" value="currentPageNo,pageSize,totalCount,totalPageCount,result"></param>
</convert>
<convert converter="bean" match="cn.phonekit.pkfacial.model.Consume">
<param name="include" value="id,name,title,content,consumeTime,moneyAmount,card,consumeName,personInCharge"></param>
</convert>
</allow>
</dwr>
page对象如下:在page对象中的result返回的是一个object是一个list,list中放入的是consume对象。
package cn.phonekit.commons.dao.support;
import java.io.Serializable;
import java.util.ArrayList;
/**
* 分页对象. 包含当前页数据及分页信息如总记录数.
*
* @author ajax
* @author calvin
*/
@SuppressWarnings("serial")
public class Page implements Serializable {
public static int DEFAULT_PAGE_SIZE = 15;
private int pageSize = DEFAULT_PAGE_SIZE; // 每页的记录数
private long start; // 当前页第一条数据在List中的位置,从0开始
private Object data; // 当前页中存放的记录,类型一般为List
private long totalCount; // 总记录数
/**
* 构造方法,只构造空页.
*/
@SuppressWarnings("unchecked")
public Page() {
this(0, 0, DEFAULT_PAGE_SIZE, new ArrayList());
}
/**
* 默认构造方法.
*
* @param start 本页数据在数据库中的起始位置
* @param totalSize 数据库中总记录条数
* @param pageSize 本页容量
* @param data 本页包含的数据
*/
public Page(long start, long totalSize, int pageSize, Object data) {
this.pageSize = pageSize;
this.start = start;
this.totalCount = totalSize;
this.data = data;
}
/**
* 取总记录数.
*/
public long getTotalCount() {
return this.totalCount;
}
/**
* 取总页数.
*/
public long getTotalPageCount() {
if (totalCount % pageSize == 0)
return totalCount / pageSize;
else
return totalCount / pageSize + 1;
}
/**
* 取每页数据容量.
*/
public int getPageSize() {
return pageSize;
}
/**
* 取当前页中的记录.
*/
public Object getResult() {
return data;
}
/**
* 取该页当前页码,页码从1开始.
*/
public long getCurrentPageNo() {
return start / pageSize + 1;
}
/**
* 该页是否有下一页.
*/
public boolean hasNextPage() {
return this.getCurrentPageNo() < this.getTotalPageCount();
}
/**
* 该页是否有上一页.
*/
public boolean hasPreviousPage() {
return this.getCurrentPageNo() > 1;
}
/**
* 获取任一页第一条数据在数据集的位置,每页条数使用默认值.
*
* @see #getStartOfPage(int,int)
*/
protected static int getStartOfPage(int pageNo) {
return getStartOfPage(pageNo, DEFAULT_PAGE_SIZE);
}
/**
* 获取任一页第一条数据在数据集的位置.
*
* @param pageNo 从1开始的页号
* @param pageSize 每页记录条数
* @return 该页第一条数据
*/
public static int getStartOfPage(int pageNo, int pageSize) {
return (pageNo - 1) * pageSize;
}
}
JS代码:
var abc="";
DWREngine.setAsync(false);
ConsumeManager.queryConsumeInfo(1,10,"",cardId,"","",consumeManagerPage());
DWREngine.setAsync(true);
alert(abc);
function consumeManagerPage(page) {
abc=page;
}
我在dwr/test里执行时都能看到有东西出来。但在JS里就是不出来,alert为undefined.我应该怎么做呢。