浏览 3104 次
锁定老帖子 主题:EasyJWeb-1.1版发布
精华帖 (0) :: 良好帖 (0) :: 新手帖 (9) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-02-21
1、在EasyJWeb Tools中增加了一套Rich Component组件,可以与其它客户端Ajax框架比如ExtJS等集成开发RIA应用。 2、修改了远程脚本调用引擎,使得性能比上一版本前提升了近2倍,详见http://www.easyjf.com/blog/html/20080103/1015816.html; 3、多国语言功能增加了对 xml格式属性文件的支持,http://jira.easyjf.com/browse/EASYJWEB-33。 4、增加从服务器输入JSon数据对象的快捷支持。 5、提供了更多的EastJWeb实例应用,详见http://easyjweb.demo.easyjf.com/。 6、修正了这两个月来大家提出的Bug及调整了一些功能,详细见jira.easyjf.com。 7、完善了入门文档,详见wiki.easyjf.com。 源码下载:ftp://ftp1.easyjf.com/easyjweb/easyjweb-1.1/easyjweb-1.1.zip 在线示例:http://easyjweb.demo.easyjf.com 在线文档:http://wiki.easyjf.com/display/wiki/EasyJWeb 这里对Rich Component及Ajax改进作简单介绍。 一、EasyJWeb Rich Component EasyJWeb 1.1版提供了一套富客户端组件,也就是Rich Componet,可以用来与ExtJS等配合快速开发出基于Ajax的RIA应用。不再需要写烦琐的javascript,直接用java就能写出漂亮的基于ExtJS等客户端框架的Ajax应用,详见示例http://wlr2.easyjf.com/。 比如只需要下面的Action代码: public class SimpleAction extends RichComponentAction { public Page doGrid() { ViewPort view = new ViewPort(); GridPanel grid = new GridPanel("grid", "数据表格",500,100); grid.setColumns(new String[]{"id","姓名","出生日期","email"}); view.add(grid); this.addComponent(view); return componentPage; } } 访问simple.ejf?cmd=grid将会得到一个非常漂亮的表格: public Page doTree() { ViewPort view = new ViewPort(); TreePanel tree=new TreePanel("tree","简单的树",200); TreeNode root=new TreeNode("root","根"); root.add(new TreeNode("c1","孩子1")); root.add(new TreeNode("c2","孩子2")); root.getChildNodes().get(1).add(new TreeNode("c3","孙子")); tree.setRoot(root); view.add(tree); this.addComponent(view); return componentPage; } 访问simple.ejf?cmd=tree将会得到一个还不错的树: 如何实现一个添删改查、分页呢?看下面的代码: public Page doCrud() { ViewPort view = new ViewPort("fit"); CrudPanel crud = new SimpleCrud(); view.add(crud); this.addComponents(view); return componentPage; } public class SimpleCrud extends CrudPanel { public SimpleCrud() { super("test", "简单测试", "link.ejf"); this.setColumns(new String[][] { { "title", "名称" },{ "url", "网址" }, { "rss", "RSS" } }); this.getPagingToolbar().setDisplayInfo(true); this.getGrid().load(); } @Override public Function getCreateWin() { return new Function("return this.initWin(438,300,'连接管理');"); } @Override public Form getForm() { Form f = new Form(); f.add(new TextField("title", "主题")); f.setLazy(false); return f; } } 访问simple.ejf?cmd=crud将会得到一个添删改查及分页的界面,点击“添加”、“修改”、“删除”、“刷新”等按钮可以执行相应的操作,如下图所示: 二、其它Ajax支持的改进及完善 1、在以前EasyJWeb的Ajax支持引擎基础上,对远程脚本调用引擎中的脚本engine.js作了调整,使得回调函数可以选择作用域scope。 服务器业务组件: public class PersonServiceImpl { /** * 得到服务器当前时间 * @return */ public Date getTime() { return new Date(); } } Bean配置文件: <bean name="PersonService" class="easyjweb.demo.service.impl.PersonServiceImpl" /> 在javascript中调用: var s="作用域2"; var o=new function() { this.s="作用域1"; } function callback(d) { alert("服务器时间:"+d); alert(this.test); } 客户端读取服务器端时间的代码: PersonService.getTime(callback);//没有使用作用域 PersonService.getTime(callback,new o());//回调函数在o实例作用域中使用域 PersonService.getTime(callback,window);//回调函数在window作用域中执行 2、增加向客户端输出JSon对象数据的快速方法。 public Page doList(WebForm form) { QueryObject qo = form.toPo(QueryObject.class); IPageList pageList = service.getLinkBy(qo); form.jsonResult(pageList); return Page.JSONPage; } 上面的代码实现把服务器端的pageList对象转换成JSON数据对象,并给客户端返回这个JSon数据对象。 客户端可以这样使用: var s=eval(req.responseText); alert(s.rowCount); for(var i=0;ialert(s.result[i].title); 3、另外还对表单ajax提交等作了其它一些调整,详细请参考最新的api文档。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-02-21
不错,代码有点wicket的意思
|
|
返回顶楼 | |
发表时间:2008-02-21
EasyJWeb的版本更新很快啊
|
|
返回顶楼 | |
发表时间:2008-02-21
EasyJWeb确实不错
|
|
返回顶楼 | |
发表时间:2008-05-05
return componentPage;
程序能运行?componentPage是哪来的? |
|
返回顶楼 | |