快速业务通道

Java与Ruby on Rails对接 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
你可以书写你自己的属性CRUD逻辑,或者你可以为一个特有的实体书写详细逻辑, 但是你不会为每一个实体设置控制代码。使用这种方法,你需要维护少量的代码,并且你可以改变CRUD独 立单元的逻辑。

Rails使用合成码,OX使用属性代码。

你可以在OpenXava wiki上面学到更多的OX控制器知识。

增加关联

为了规范在Ruby中从类别增加关联,你需要在category.rb中书写如下代码:

图八

以及在recipe.rb中:

图九

相当简单。但是,你要做更多的工作,你必须编译。

cookbook2\app\views\recipe\_form.rhtml

增加如下代码:

<p><labelfor="recipe_category_id">Category</label><br/>

<%= select("recipe", "category_id", Category.find(:all).collect {|c| [c.name, c.id] }) %></p>:

结果是:

Java与Ruby on Rails对接 - 编程入门网

图十

Java与Ruby on Rails对接(7)

时间:2011-10-13 IT专家网 薇薇

在这个环节,OpenXava中,你不得不在Category.java中使用JPA规定关联:

@ManyToOne(optional=false) @DescriptionsList private Category category; and in Recipe.java: @OneToMany(mappedBy="category") private Collection recipes;

而且你不需要接触任何类似HTML代码。应用程序将会显示如下:

Java与Ruby on Rails对接 - 编程入门网

图十一

你有一个为修改产生的链接或者从这里创建新类别。

不增加任何辅助编码,如果使用者使用类别单元,他将获得每一个类别中准则的收集,如下所示:

Java与Ruby on Rails对接 - 编程入门网

图十二

在这里,RnR应用程序还是不具备这种特性,你需要书写一些Ruby 和HTML代码来实现一样的结果。

在这一块,RnR 和 OX的主要差别是,在OX中你不需要书写任何HTML类似的代码,事实上你连用户界面 代码都根本不需要书写。

Java与Ruby on Rails对接(8)

时间:2011-10-13 IT专家网 薇薇

精确的基础资料

Ruby on Rails指导的下一个步骤是为一种特性生成基础资料。在RnR中你不得不编译控制编码从而达 到这个目的。让我们开看看。

修改以及更新的方法是增加如下代码行:

@recipe.date = Time.now The equivalent in OX is adding the @DefaultValueCalculator annotation in model: @DefaultValueCalculator(CurrentDateCalculator.class) private Date date;

用一种更为公开的方法获得一样的结果

在这里,尽管RnR中在控制器上放置的代码,OX中统计基础资料的代码,为了确认以及业务逻辑,一般 来说是放在模型上。OX促进从控制器转移业务逻辑到模型上。

RnR的相关文章中提到:“我改良模型文件,所以我需要重新启动我们的web服务器”。尽管使用 Eclipse WTP 我只需要按一下Ctrl 加上B,在浏览器上点击刷新以便于看见OpenXava应用程序上面模型的 变化。

结论

Ruby on Rails 和 OpenXava之间最主要的差别是RnR是 MVC框架,你不得不书写模型和控制器。OX是 模型驱动框架,你只需要书写模型。结果就是更少的代码,更好的程序。

另一个大的不同点是RnR使用被动代码生成方式;这就是说,生成代码,但是这之后如果你想要扩展或 者提炼代码,你不得不编译合成码。OpenXava不需要使用代码生成器,你所拥有的代码都是你所书写的。 你可以在Java的世界中找到提高生产力的方法。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号