有沒有一個骨架斯卡拉Web框架?我基本上需要的基本功能如:一個簡單的Scala web框架?
- 路由。
- GET/POST/PUT參數處理。
- A 簡單模板引擎(基於內容替代)。
- 序列化(JSON,YAML)
因爲它太適合我,因爲我想在生成的HTML的完全控制,我不喜歡電梯,意思是我希望能寫100 %的HTML/CSS/JS代碼。
有沒有這樣的框架?或者是否有可能使用Lift以否 HTML在幕後生成?或者我會更好地編寫一個正常的servlet嗎?
有沒有一個骨架斯卡拉Web框架?我基本上需要的基本功能如:一個簡單的Scala web框架?
因爲它太適合我,因爲我想在生成的HTML的完全控制,我不喜歡電梯,意思是我希望能寫100 %的HTML/CSS/JS代碼。
有沒有這樣的框架?或者是否有可能使用Lift以否 HTML在幕後生成?或者我會更好地編寫一個正常的servlet嗎?
也許你想要類似Scalatra或Unfiltered?在另一個筆記中,如果您不想放棄在Lift應用程序中對HTML/CSS/JS的任何控制,您就不必放棄。
您可以使用Lift來生成服務,例如REST,這或多或少是您要查找的內容? http://www.assembla.com/spaces/liftweb/wiki/REST_Web_Services
如果我們看看What Scala web-frameworks are available?,他們都沒有一個很棒的簡單模板引擎,至少對我來說似乎是這樣。 SweetScala似乎是最接近的http://code.google.com/p/sweetscala/wiki/GettingStarted
本來不是Scala框架,但是我用Jetty + JAX-RS + Scala + Freemarker祝你好運。這些都是相當經過戰鬥測試的技術,並且Scala集成沒有問題。爲了適應Freemarker理解Scala系列產品和屬性,一個小墊片是必要的,但沒有什麼具有挑戰性。
兩個以上的框架,你要考慮:
遊戲是一個簡單的REST框架,在日益普及,並有一個很好的Scala interface。它的模板相對簡單地轉換成Scala函數。幾個月前,使用JSON包(如lift-json)將數據解包到案例類中存在困難,因爲Play具有用於快速開發的自定義類加載器。不確定此問題是否已解決。斯卡拉公司Typesafe使用Play for their site。 Play與Akka集成,Akka的一位開發者之一Viktor Klang推薦玩一段時間。
稍微遠一點的路徑,有Spray。我不能說詳細信息,但Wiki看起來很有趣。在我看來,Spray看起來是圍繞Akka整合設計的。我不認爲它帶有模板引擎,但它可能與Scalate接口(請參閱mailing list discussion)。
我不會打電話播放「裸機」,它是數百兆字節。 –
我不會說它簡單。這非常複雜。 – rightfold
Scalatra是斯卡拉善良的相當光禿禿的骨頭。易於配置,易於處理裸HTTP的東西。它類似於斯卡拉的sinatra。 Scalatra也具有良好的Maven支持,並且與傳統的java servlets共存。
彼得給出了一個很好的答案......我會稍微擴展一下。
Lift爲您提供了大量的控制和訪問原始HTTP請求以及在HTTP級別之上提供大量抽象。這是您選擇Lift要做多少或多少的選擇。
您可以使用Lift的RestHelper構建基於REST的應用程序。請參閱http://simply.liftweb.net/index-Chapter-5.html Lift的RestHelper可爲您提供絕大多數基於MVC /路由的方法,其優勢在於您的應用程序的最前沿是類型安全和訪問控制。但是使用Scala的模式匹配提取器,可以確保交付給應用程序業務邏輯的參數已經實現並檢查訪問控制。此外,Lift的REST支持將與其他Web框架一樣簡潔或更簡潔。
就Lift的HTML處理而言,只要您希望將HTML生成爲有效的DOM而不是一系列的Strings,就可以控制HTML的創建。
大多數Web框架強制您在撰寫HTML時發出字符串。正確的HTML轉義字符串取決於開發人員。開發人員必須確保結束標記正確排列。有了Lift,你可以免費得到這種東西。
您可以使用MVC風格的Lift應用程序提供HTML。請參閱https://github.com/dpp/hoisted(這是支持http://liftweb.net的代碼)
在Lift應用程序的「標準」配置中,當且僅當您使用某種構造時,Lift會對HTML進行一些後處理。因此,如果您將<head>
標籤放在HTML頁面的正文中,Lift會將該<head>
標籤的內容移動到頁面的頭部。如果您包含對Lift的Comet支持的調用,Lift會在頁面上插入JavaScript來進行長輪詢。但是這些功能是可選的,只有在您使用Lift中的某些功能時纔會發生。
我希望這可以幫助您瞭解使用Lift的好處。
謝謝@ ethan-jewett糾正我的文盲! ;-) – pr1001
電梯+1。它*可以爲你做很多事情,但它不必 – Dylan
未經過濾的看起來非常適合於搜索操作。 – AndreasScheinert