刚用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.我应该怎么做呢。
分享到:
相关推荐
在这个场景中,我们关注的是如何在DWR回调函数中处理从服务器返回的`List<Bean>`类型的数据。 首先,我们需要在服务器端定义一个Java方法,该方法会返回一个`List<Bean>`。例如,假设我们有一个名为`User`的Java ...
在这个例子中,`startListening`函数开启了一个DWR长连接,每隔5秒向服务器发送一次心跳请求,服务器在有新数据时会调用`getNewData`的回调函数,更新页面上的数据显示。 总结来说,DWR长连接是实现Ajax实时通信的...
var helloWorld = new dwr.util.Callback({ // 创建回调对象 callback: function(result) { alert(result); // 显示结果 }, errorHandler: function(error) { console.log("Error occurred: " + error); } });...
在这个例子中,`refreshData`函数通过DWR调用了服务器端的`getData`方法,并定义了两个回调函数处理返回的结果和可能出现的错误。 **总结:** DWR结合Ajax实现了局部刷新功能,提高了Web应用的用户体验。通过配置...
`callBackFortestMethod2`作为回调函数接收返回值,并进行后续处理,例如弹出警告框显示返回值。 3. **有简单参数的Java方法调用**: 当需要传递单个参数时,如`callTestMethod3`,可以在调用时将参数赋值给变量`...
最后,关于错误处理,DWR提供了回调函数,如上面JavaScript代码所示的`onUploadSuccess`和`onUploadError`。这些函数可以在客户端捕获服务器返回的任何异常信息,为用户提供适当的反馈。 总结起来,使用DWR进行文件...
- JavaScript代码是否优雅地处理了异步请求和回调。 - 用户交互是否流畅,分页过程是否无刷新且快速。 总的来说,DWR分页源码的分析和学习可以帮助开发者更好地理解和实现Ajax分页,提升Web应用的用户体验。通过...
10. **错误处理**:DWR还提供了错误处理机制,当服务器端抛出异常或者通信出现问题时,可以在客户端捕获并显示错误信息。 理解DWR的这些工作原理对于开发人员来说至关重要,它能帮助你更有效地利用DWR进行前后端...
6. **回调(Callback)**:DWR使用回调函数来处理异步调用的结果。当服务器端的方法执行完毕并返回结果时,指定的JavaScript函数会被调用,接收并处理返回的数据。 在你提供的例子中,`dwr使用.java`可能包含了一个...
在这个示例中,`MyService.getList`方法会被调用,当数据返回时,回调函数会接收到返回的List数据,并将其渲染到页面上。 5. **运行和测试**:在MyEclipse或其他IDE中运行项目,打开浏览器访问相应的页面,你应该能...
- **回调处理**:当Ajax请求完成,DWR会调用预先定义的回调函数,处理返回的数据并在页面上进行更新。 7. **优化与安全** - **性能优化**:考虑使用缓存机制减少数据库查询次数,或通过服务器端的分页处理减轻...
DWR会将服务器的响应数据转换为JavaScript可以理解的格式,并在调用的回调函数中返回。你可以在这里处理返回的字符串、对象或列表。 DWR还提供了其他特性,如安全设置、缓存控制、异步和同步调用等,使得它成为...
4. **API使用**:DWR提供了一系列JavaScript接口,如`DWREngine`、`RemoteObject`和`Batch`,开发者可以使用这些接口创建AJAX请求,处理回调结果。 5. **实时更新**:DWR支持自动刷新,这意味着当服务器端数据改变...
- **Callback**:当服务器响应时,DWR使用回调函数来处理结果。 - **Batching**:DWR允许批量调用多个远程方法,减少网络开销。 - **Caching**:DWR提供缓存机制,可以缓存服务器响应,提高性能。 **DWR的应用场景...
JavaScript代码会根据DWR回调的进度信息来更新进度条的状态。 6. **错误处理**:无论是Struts2还是DWR,都需要处理可能发生的错误,如文件大小限制、文件类型限制、网络中断等。这些错误信息需要通过Action或DWR回...
- 回调函数可以用来处理服务器端方法的返回结果,例如更新DOM元素、显示消息等。 #### 实用函数 DWR提供了一系列实用函数,用于辅助前端开发: - **注册回调函数**:如上所述。 - **处理错误和警告**:DWR支持...
DWR提供了错误回调函数,你可以在其中添加适当的错误提示和处理逻辑。 7. **安全性和性能**:在实际应用中,确保DWR的使用是安全的,避免跨站脚本攻击(XSS)和其他安全风险。此外,优化服务器端方法以提高性能,...
一旦有新消息,DWR会自动触发一个JavaScript回调,在浏览器端执行相应的更新函数。 - 最后,这个更新函数会在用户界面上显示新接收到的信息,实现界面的实时刷新。 5. **压缩包子文件的文件名称列表**:...
- `FlushSelect.getSelectDate`方法用于获取数据,并传入一个回调函数来处理返回的数据。 - `dwr.util.addOptions`用于将获取到的数据添加到`select`元素中。 3. **HTML选择器:** ```html ();"> ``` -...
- `dwr.engine`:这是DWR的核心JavaScript对象,提供初始化、设置回调函数等基本功能。 - `dwr.util`:提供一系列实用工具函数,如数组操作、类型检查等。 - `dwr.engine.setActiveReverseAjax(true|false)`:...