【发布时间】:2011-10-06 11:58:27
【问题描述】:
我正在寻找一个面向对象的 Web 框架来在 Scala 中开发 Ajax 应用程序。 所以,理想情况下,我希望有类似 GWT 的东西,但不混合 Java(客户端代码)和 Scala(服务器代码)。
下面是一个简短的例子,说明 Scala 如何使用标签和列表创建垂直布局:
val label = new Label("nothing selected")
val list = new ListView("item1", "item2") onSelection { value => label.text = value }
pageContent = VerticalLayout(label, list)
实际上,这几乎是 Scala Swing 代码。但是为什么不为 Web 应用程序选择相同的语法呢?
对于Can Scala be used to write GWT applications? 臭氧的问题,建议使用scalagwt 项目。该项目看起来非常有前途。但是,它仍处于早期阶段,还不支持客户端-服务器通信(据我所知)——我的网络应用程序依赖于它。
其他人建议使用 lift 框架,我想知道 lift 是否允许以与 GWT 可能的类似的面向对象方式开发 Ajax 应用程序。我不需要将客户端代码编译成 Java Script 的特性,这样客户端应用程序甚至可以在不与服务器通信的情况下完全运行。相反,我不介意浏览器中的每个操作都会导致对服务器的 Ajax 请求,并且服务器执行相应的操作并将 JavaScript 命令发送回客户端以更新网页的某些部分(例如,用内容填充表 X是)。一个由多个 UI 组件组成的设计良好的 API 不仅可以用来隐藏这些组件的 HTML 定义,还可以用来隐藏用户在 Scala 代码中更新 UI 组件时在后台执行的 JS 更新命令(例如lable.text = ...)。是否有用于提升的模块或替代的 Web 框架提供这种面向对象的 Web 应用程序定义?
【问题讨论】:
-
Lift AJAX 支持以功能性的方式做到这一点(即使我建议你不要那样做 AJAX)
标签: ajax oop scala lift web-frameworks