5

问题 1) 我想知道 ruby​​ on rails 是否有功能类似于 primefaces 的 gems。为什么我要问的是

如果您使用 primefaces ( http://www.primefaces.org/showcase-labs/ui/home.jsf ),开发人员无需担心 javascript 或 jquery 的东西。

据我所知,JSF 是一个规范,基于规范的各种可用实现,primefaces 是这些实现的 ui 框架,primefaces 有很多基于 jquery 和 javascript 库的组件。或多或少的 primefaces 只是用作 javascript 包装器。我使用 primefaces ,您主要专注于业务逻辑,无需担心 UI。

我深受 ruby​​ on rails 方法的启发,并且有很多可用的宝石。

我的问题是,是否有可用于 ruby​​ on rails 的 gem 或 UI 框架,类似于 primefaces 驱动的 UI 魔术

注意:我不是在寻找纯 jquery 或 dojo 的东西,我在寻找用于 ruby​​ on rails 的 UI 组件驱动的东西。从事使用 primefaces 项目和使用 rails 项目的人会 100% 理解我的问题。

问题 2) 我想知道与用户界面相关的宝石列表。我要问的是为了在 ruby​​ on rails 上创建非常利基的用户界面,需要什么东西(框架或 gem)。

4

2 回答 2

5

先前答案的许多部分根本不正确。听起来回答者没有使用 JSF2.0,这就是 Primefaces。JSF v1 非常复杂,对每个人来说都是一次糟糕的体验。JSF2.0 与 JSF v1 完全不同,所以要小心那些承认不使用 JSF2.0 的反对者。

JSF2.0 是一个非常高效且有趣的 Web 框架。它根本不是“企业性”(但从 JSF v1 获得了这种声誉)。它很轻巧,不会妨碍您。因为它是 Java(最终被编译,而不是解释),所以它也很快。

它的核心是一个模板框架:您不仅限于组件,默认情况下它是自由格式的 HTML。您可以选择使用称为组件的智能标记,这些标记可以在请求生命周期内维护状态,这对于执行验证和 ajax 之类的事情非常方便(在 JSF2.0 中两者都是非常简单的任务)。

JSF2.0 还管理可以绑定到不同范​​围(如请求、视图、会话甚至应用程序)的 bean(您定义的小型有状态对象)的生命周期。控制器在 Rails 中是一个类似的概念,但是 JSF2.0 没有路由的概念,而是使用 EL 传递函数对象,因此它具有动作的概念。这使它具有难以置信的自由形式;你可以使用任何你喜欢的软件模式:我喜欢 MVVM 而不是 MVC,我倾向于使用这种模式,而 Rails 是相当严格的 MVC。

组件库是一组可以放到页面上的 java 代码和 html 片段。Primefaces 是常用 UI 小部件的组件库。本质上,您编写一些 JSF/HTML 代码并在浏览器上驱动 JQuery UI。

你能在 Ruby 中使用 JSF2.0 吗?我打赌你可以使用 JRuby。如果可以使用 JSF2.0 注释(如 @ManagedBean)来注释 Ruby 对象,我相当肯定您可以通过一些实验来完成这项工作。

祝你好运,如果你最终这样做了,请回帖!

于 2012-09-03T20:21:35.437 回答
4

我真的觉得你在这里问的是“错误”的问题——因为我以前在 JSF(主要是 MyFaces)和 Rails 方面的经验。

我假设您大部分时间都在使用 Rails - 忘记 JSF,忘记组件,甚至可能忘记您如何编写 JavaScript(在 JSF 项目中)。RoR 是一个不同的世界,你越深入它就越忽视组件,至少我是这样。我还用 Ruby on Rails 重新发明了“简单”的 Web 编程,并获得了一些“宝贵”的 JavaScript 经验,但我不得不放弃我以前从 Java 领域获得的一些“智慧”:)

据我所知,Rails 没有这样的 UI“魔法驱动框架”,我相信也没有需求。视图层,包括 JavaScript 集成,在(基于组件的)JSF 应用程序中(在概念上)与在 Ruby on Rails 中的不同。

我个人只认为 JSF 是“企业形式”应用程序的一个不错的选择,这些应用程序只需要编写一次,发展最少并且需要很少的组件定制(或者需要一些但比提出定制组件所花费的时间应该在其他应用程序上重用) .

JSF 的视图层往往会限制您使用您拥有的组件 - 您倾向于考虑使现有组件适应您的需求,而不是清楚地考虑“小部件”的 HTML 的布局,在真正的用例需求,而不是您最终花费大量时间检查组件以寻找可能的扩展和黑客攻击。更不用说适应您没有编写的 HTML + JavaScript 生成的片段可能更难,即使仔细编写它仍然存在,您必须为每个组件学习另一个“小”API。

如果您查看 Rails,它的设计不同 - 您编写“普通旧”视图(最初需要一些时间),为了重用,您可以将它们逻辑地拆分为部分(很可能是随着新需求的出现)。重用时,部分可以很容易地适应新的场景,更不用说你可以控制标记附带的 JavaScript。

除了许多新的应用程序被编写为带有 REST API 的胖 JavaScript 客户端之外,我无法想象 JSF 在这里不会成为一个负担,因为您大多数时间都需要完全控制您的 HTML 和 JavaScript。您必须并且想要担心 UI,当然不需要另一个服务器 + 客户端 JavaScript 包装器。如果您更喜欢在组件方面进行思考,我宁愿建议您查看诸如 Ext-JS 之类的客户端组件库。

于 2012-07-02T18:01:52.057 回答