锁定老帖子 主题:DWR如何与webwork结合使用
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-01
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-01
到dwr官方网站上有介绍,和一个台湾的哥们写的dwr例子
|
|
返回顶楼 | |
发表时间:2007-03-01
他的PPT上只是简单提到了和ww在action层次的集成,太不详细.并没有这方面的指导
|
|
返回顶楼 | |
发表时间:2007-03-01
webwork的result 你想怎么用 就怎么写一个呗
|
|
返回顶楼 | |
发表时间:2007-03-01
hehe,路过.顺便问下.dwr的版本和框架的版本有关吗?
|
|
返回顶楼 | |
发表时间:2007-03-02
jianfeng008cn 写道 webwork的result 你想怎么用 就怎么写一个呗
还是不懂,能否详细点.webwork是一个MVC,在xwork.xml中配置action以及action执行后的result,而dwr是从javascript中调用java方法,我不知道如何把他们各自的优势结合起来. |
|
返回顶楼 | |
发表时间:2007-03-02
sunfy 写道 他的PPT上只是简单提到了和ww在action层次的集成,太不详细.并没有这方面的指导
我没看过这个东西,我的想法是使用dwr但是不用他的servlet,即不在javascript中调用服务端service中的方法,而是和普通的ww的action一样的,然后定义个ww的result ,在这个result中进行java对象到js对象的转换,然后输出给xmlhttprequest来接收。 贴个伪代码吧, 引用 import java.io.IOException; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.opensymphony.webwork.ServletActionContext; import com.opensymphony.webwork.dispatcher.WebWorkResultSupport; import com.opensymphony.xwork.ActionInvocation; public class AjaxJsonResult extends WebWorkResultSupport { private static final long serialVersionUID = -3778230771704661631L; Log log = LogFactory.getLog(this.getClass()); protected ActionInvocation invocation; public void doExecute(String location, ActionInvocation invocation) throws IOException { Map<String, Object> map = new HashMap<String, Object>(); Enumeration names = ServletActionContext.getRequest().getAttributeNames(); while(names.hasMoreElements()){ String name = (String) names.nextElement(); if(name.indexOf('.')<0){ //表示是我们自己set到request中去的对象 Object obj = ServletActionContext.getRequest().getAttribute(name); map.put(name,obj); } } StringBuffer jsResult=new DWRJsonMarshaller().marshall(map); log.info(jsResult.toString()); ServletActionContext.getResponse().setContentType("text/plain charset=\"utf-8\""); ServletActionContext.getResponse().getWriter().write(jsResult.toString()); } } 这句 StringBuffer jsResult=new DWRJsonMarshaller().marshall(map); 只是意思意思哦 |
|
返回顶楼 | |
发表时间:2007-03-04
非常很感谢楼上的热情回答,我明白一点了.不过这样,dwr服务端好像根本没有用.就是说这样的方式,我看不到dwr在哪里.而且dwr的主要亮点就是javascript访问java方法,这里去掉了,那么仍然有dwr使用的意义吗
|
|
返回顶楼 | |
发表时间:2007-03-04
sunfy 写道 非常很感谢楼上的热情回答,我明白一点了.不过这样,dwr服务端好像根本没有用.就是说这样的方式,我看不到dwr在哪里.而且dwr的主要亮点就是javascript访问java方法,这里去掉了,那么仍然有dwr使用的意义吗
javascript访问java方法,那你用javascript提交action难道就不算了:) dwr把java对象转化成js对象,你的javascript就可以访问java对象了,这和javascript访问java方法的本质是一样的哦 |
|
返回顶楼 | |
发表时间:2007-03-05
你说的有些道理,但是异步怎么办?DWR提供的js访问java的方式好像封装了XMLHttpRequest对象的异步处理过程.在js中提交action的话就得自己处理或者采用别的toolkit.
你这里说的让我还是看不到DWR在哪里 |
|
返回顶楼 | |