package org.goldenport.g3.app import org.goldenport.g3._ import org.goldenport.g3.messages._ class HelloWorld extends G3Application { port("/") agent { case _ => "Hello World" } }
このような目的には、様々な情報を埋め込んでレイアウトしたHTMLを出力するためのチャネルであるhtmlチャネルを使用する。
g3アプリケーションHelloWeb.scalaでは、htmlチャネルを用いてHTMLページを定義している。
portチャネル「/」が呼び出されると、つまりWebのパス「/」が呼び出されるとinvokeエージェント経由でhtmlチャネル「hello」が呼び出され、htmlチャネル「hello」が生成したHTMLが返され、最終的にクライアントに返される。
htmlチャネルでは、ScalaのXMLリテラルを使用してHTML文書を直接記述する。また、HTMLのhead要素はhtmlチャネル側で生成するのでbody要素のみを定義すればよい。
package org.goldenport.g3.app import org.goldenport.g3._ import org.goldenport.g3.messages._ class HelloWeb extends G3Application { html('hello, "Hello") { <body> <h1>Hello</h1> Hello World! </body> } port("/") invoke("hello") }
実行
それでは、org.goldenport.g3.app.HelloWebを実行してみよう。HelloWebは、g3フレームワークに同梱しているので直接実行することができる。
g3.serverスイッチを用いてJettyベースのWebアプリケーションとして実行することができる。$ g3 -g3.application:org.goldenport.g3.app.HelloWeb -g3.server
トップページにアクセすると以下のようにチャネルhelloで定義したWebページが表示される。
0 件のコメント:
コメントを投稿