阅读更多

15顶
0踩

编程语言

原创新闻 EasyJWeb-1.1版发布

2008-02-21 10:43 by 见习记者 天一 评论(12) 有6824人浏览
  我们非常高兴的宣布,EasyJWeb-1.1今日正式对外发布,这个版本主要对EasyJWeb的Ajax支持作较大的改进。主要包括下面的内容:
  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文档。

15
0
评论 共 12 条 请登录后发表评论
12 楼 johnnyhg 2008-02-23 16:33
学习成本有点大
11 楼 hantsy 2008-02-22 20:20
不知道在国内应用如何
10 楼 smartbbs 2008-02-22 17:38
支持EasyJWeb
9 楼 ken1984 2008-02-22 15:40
垃圾,华而不实。
8 楼 erikchang 2008-02-22 12:54
这个新版的发布是个不小的飞跃哈,支持,要跟踪大家都喜欢的技术才能取得好成绩!
7 楼 beyondsky 2008-02-22 09:23
我也是在一直在关注 ext 但是就是没有机会去用 对他还是个谜 要是有经验和时间的同仁 帮我发个学习文档和一些例子 并且怎么配置 发到我邮箱来:beyond-jerry@163.com 在此谢谢了 、
6 楼 darchen 2008-02-22 08:40

  一直关注着,没有实际运用过.
  祝,你们越作越好.
5 楼 clskkk2222 2008-02-22 08:17
支持 学习一下
4 楼 天一 2008-02-21 12:46
引用
厉害 只是想问问 那生成的表格和树的样式 是固定的吗 能改变吗


EasyJWeb1.1中的Rich Component默认实现是使用Ext框架,所以那个树或Grid最后都会转换成客户端的实现,对于Ext控件中支持其它特性,当然都可以应用,只是有一些用得少的属性没有进行封装而已。比如要给Ext组件添加额外样式,如果用javascript可以直接在构造组件的时候指定cls属性。但在easyjweb里面由于BaseComponent中没setCls方法或属性,此时只需要直接使用下面的代码即可:
Panel p=new Panel();

p.set("cls","c1,c2,c3");
3 楼 lidongmei 2008-02-21 12:08
厉害  只是想问问 那生成的表格和树的样式 是固定的吗 能改变吗
2 楼 天一 2008-02-21 11:10
www.easyjf.com/bbs.ejf

wlr.easyjf.com

或这群:52317037
1 楼 roronjavaeye 2008-02-21 11:02
我按照视频作了,可是还有点小问题,不知在哪里可以得到你们的支持?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • css属性

    1、  布局 属性 语法 css 兼容 display none|block|inline 1   block-inline|list-item|table|table-cell 2 Ie6-7 float none|left|right

  • CSS(基础篇)

    1. CSS概念及编写规范 概念:层叠样式表 作用:在网页制作时可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制 优势 功能上:可以完成HTML不能完成的美化工作; 耦合性:降低了代码的耦合度,将结构与美化分离(HTML:负责网页的结构,CSS:负责网页的美化) 编写规范 CSS写在大括号内部 格式为:样式名:样式值; 注释:/* */ 2. CSS的使用位置 ...

  • svn控制标记没有的解决方法

    Window-&gt;Preferences-&gt;Appearence-&gt;Label Decorations . 把SVN勾上

  • SVN版本控制——主线、分支、标记篇

    目前在svn的使用上,最大的问题就是没有建立各自项目组的分支,所有模块均集中对trunk中主线进行操作。就像测试时直接操作生产数据库一样可怕,因为木有备份,出问题了恢复就比较麻烦。 【Tags】  标记是主线...

  • eclipse环境问题之——项目没有SVN版本控制标记

    用过eclipse的朋友都知道,在eclipse里装上SVN插件后,项目就会受SVN版本控制,打上相应标记。 之前的电脑用的eclipse的版本是4.2,装的SVN插件是1.8.x,一直都用的很好。因为上篇博客中的问题,eclipse更新到了...

  • SVN取消版本控制

    SVN取消版本控制 如果不小心把本地的一个文件夹关联到SVN的话,文件夹就会出现红色感叹号或者绿色勾的标志,看着非常不舒服,如何才能取消SVN的版本控制: 一:解除控制 ...可以看到SVN的标记消失了。

  • svn版本控制-实用篇

    SVN是Subversion的简称,是一个自由开源的版本控制系统。Subversion将文件存放在中心版本库里,这个版本库很像一个普通的,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将到以前的版本,并可以...

  • 从入门到精通:详解SVN版本控制系统的使用方法

    SVN(Subversion)是一种流行的版本控制系统,用于管理和跟踪软件开发项目的代码变更。它提供了许多功能,例如版本控制、分支管理、合并等,使团队能够协同开发并保持代码库的一致性。 在SVN中,可以使用外部引用...

  • SVN分支和标记用法

    使用SVN+Eclipse做软件版本控制,介绍分支和标记用法   1,SVN目录结构 Trunk : 主干目录,此目录下的文件为基准文件 Branches : 用于开发的分支目录 Tags : 用于发布的版本目录  下图是基于...

  • 61.SVN版本控制系统

    所谓的 Tag 或是 Release 就是一个特别的版本,因为这个版本可能有特别的...您将会看到 MyWork 目录下面多了一个名为 .svn 的目录(这个目录是隐藏的,如果您的档案管理员没有设定可以看到隐藏目录,您将无法看到它)。

  • SVN使用:取消SVN版本控制

    标记文本 删除文本 引用文本 H2O is是液体。 210 运算结果是 1024. 插入链接与图片 链接: link. 图片: 带尺寸的图片: 当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。 如何插入一段漂亮的...

  • SVN分支&标记的使用说明

    4.20.分支/标记 版本控制系统的一个特性是能够把各种修改分离出来放在...版本控制系统的另一个特性是能够标记特殊的版本(例如一个发布版本),所以你可以在任何时候重新建立一个特定的构建或环境。这个过程被称作...

  • svn提示没有设置冲突_SVN冲突解决方法大全

    有时候如果看到某个包里面的文件夹没有SVN的标志,直接用“Ctrl+Delete”手工删除,然后“清理”,最后“更新”或“提交”。中断提交,都会进入这种工作拷贝的锁定状态。用svn cleanup上次关闭...

  • SVN 版本控制的数据合并规则

    SVN 的数据合并规则到底是什么?

  • 【SVN】版本控制管理操作

    安装 客户端 ...运行VisualSVN Server Manager,启动SVN Server的界面化管理平台。 SVN服务端 创建仓库 右键单击【Repositories】,再点击【Create New Repository】 仓库类型选择默认(Regular FS

  • SVN版本控制分支、合并功能使用

    SVN版本控制分支、合并功能使用。

  • Unity版本控制之SVN的使用

    SVN是一种版本控制系统,我们现在使用的TortoiseSVN是一种SVN版本控制的客户端程序。TortoiseSVN客户端安装包可以在公司服务器上找到下载,也可以从官网下载,官方下载地址为:...

  • svn 文件状态标记含义

    svn status打印五列字符,紧跟一些空格,接着是文件或者目录名。第一列告诉一个文件的状态或它的内容,返回代码解释如下: A item文件、目录或是符号链item预定加入到版本库。 C item文件item发生冲突,在从...

  • SVN 新增加的文件后,不受版本控制,而且提交时没有出现的问题

    SVN 新增加的文件后,不受版本控制,而且提交时没有出现的问题

Global site tag (gtag.js) - Google Analytics