2011-10-06 46 views
1

我正在寻找面向对象的Web框架来开发Scala中的Ajax应用程序。 所以,理想情况下,我想要有像GWT但没有混合Java(客户端代码)和Scala(服务器代码)的东西。如何在Scala中开发ajax Web应用程序?

这里是斯卡拉怎么可能有一个标签和列表中创建一个垂直布局很短的例子:

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项目。该项目看起来很有希望。然而,它仍处于早期阶段,并且还不支持客户端 - 服务器通信(据我所知) - 我的功能取决于我的Web应用程序。

其他人建议使用lift框架,我想知道lift是否允许以与GWT类似的面向对象的方式开发Ajax应用程序。我不需要将客户端代码编译到Java脚本中的功能,以便客户端应用程序甚至可以在不与服务器通信的情况下完全运行。相反,我不介意浏览器中的每个操作都会导致对服务器的Ajax请求,并且服务器执行相应的操作并将JavaScript命令发送回客户端以更新网页的某些部分(例如,为表格X填充内容Y)。由几个UI组件组成的设计良好的API不仅可以用来隐藏用户的这些组件的HTML定义,还可以用来在用户更新Scala代码中的UI组件时在后台执行的JS更新命令(例如lable.text = ...)。是否有一个提升模块或一个替代的Web框架提供了这种面向对象的Web应用程序定义?

+1

提升AJAX支持做到完全与功能的味道(即使我会建议你不要这样做AJAX) –

回答

4

也许你应该看看Vaadin(一个基于GWT的丰富的UI组件框架),特别是它的Scala支持here

+0

非常感谢!这似乎是我正在寻找的框架。 –

+0

我们也在考虑为Vaadin本身添加特定的Scala支持。到目前为止,这是公司内部非官方的项目,但我们已经有了一些代码。来源和讨论(请参与!)可在此处获得:https://vaadin.com/forum/-/message_boards/view_message/530126 – hezamu

0

我也使用Vaadin与Scala - 它工作得很好。