トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Scalatra

[Scala]

Scalatra

RubyのフレームワークsinatraをScalaで実装したもの。基本的なHTTPとルーティングがわかっていればWEBアプリが実装できる。

  scalatraのデプロイ

HerokuでのデプロイHeroku

  最小構成によるサンプル

とりあえず動かしてみるにはこれがよいscalatra-sbt-prototype

  • ソースからわかる特徴
    • get("/") などに見られるHTTPのルーティング、簡単で改造しやすい
      • 同様にして、post()、put()、delete()、なども実装可能
      • 基本はJavaのServletの規格の上で動いているので、request、response、servletContextとか概念は同じ
    • scalateとかいうHTMLテンプレート
      • "<html>...</html>のような記述がそのまま書ける、よくあるHTMLテンプレート、さらばJSP(Javaプログラマー堂々退場す)
      • 変数をテンプレート中に差し込む場合は、 { variable } と書く
package com.example.app

import org.scalatra._
import scalate.ScalateSupport

class MyScalatraServlet extends ScalatraServlet with ScalateSupport {

  get("/") {
    <html>
      <body>
        <h1>Hello, world!</h1>
        Say <a href="hello-scalate">hello to Scalate</a>.
      </body>
    </html>
  }

  notFound {
    // Try to render a ScalateTemplate if no route matched
    findTemplate(requestPath) map { path =>
      contentType = "text/html"
      layoutTemplate(path)
    } orElse serveStaticResource() getOrElse resourceNotFound() 
  }
}

お名前: コメント: