読者です 読者をやめる 読者になる 読者になる

Sweetを試してみた

Scala

Sweet is a web application framework for building dynamic web content that runs on any Java servlet server.

http://code.google.com/p/sweetscala/

ScalaでWebアプリケーションっていうとやっぱりliftなんだろうかと思うところであるが、Scalaの言語仕様にもIDEを使った開発にも慣れていない段階でliftを触っていると結構窮屈に思えた。というわけで、liftよりも「薄そうな」Webフレームワークを試してみる次第。

インストール

Scala, Mavenが必要。Sweet自体のインストールは下記のページに書いてあるように、zipを落としてきて、その中のbinにパスを通せばいいだけなので簡単。

HelloWorld

以下のチュートリアルをやってみる。

"toolbox create-project"でSweetのプロジェクトを作成し、開発サーバーを起動。

$ toolbox create-project my-sweet
$ mvn jetty:run

http://localhost:8080/my-sweet/にアクセスするとWelcomeページが表示される。実際には、http://localhost:8080/my-sweet/webapp/にリダイレクトされる。

Sweetのルーティング機構は、標準では、

のようになっているようだ*1。こいつを変えたいときはどうすればいいのかっていう点は気になるところだが、そのままチュートリアルを進める。

チュートリアルの通り、my-sweet/src/main/scala/mysweet/MainController.scalaを編集する。

// my-sweet/src/main/scala/mysweet/MainController.scala

class MainController extends HandlerNameViewController{
  handle("/index"){ HandlerNameView() }  
  handle("/about"){ HandlerNameView() }  

  // 追加
  handle("/greeting"){ 
    HandlerNameView("message"->"Hello World") 
  }
}

HandlerNameViewはAPIドキュメントによると、

A View that will automatically figure out the name based on incoming URL of action handler name

http://sweetsoftwaredesign.com/sweet-api/scaladoc/sweet/mvc/api/HandlerNameView.html

ということだが、それ以外のViewに目を通すまではさらっと流しておく。

テンプレート my-sweet/src/main/webapp/view/main/greeting.ftl を追加。テンプレートエンジンが多少なりとも心得のあるFreeMakerなのですんなり入っていける気がする。

<html><body>
<p>Sweet message: ${message}</p>
</body></html>

コンパイルして http://localhost:8080/my-sweet/webapp/main/greeting にアクセスするとHello Worldが表示される。

*1:もっと正確な説明は[http://code.google.com/p/sweetscala/wiki/MvcWebFramework:title=ここ]にある