Top > Blog Index > Grails で Hello World してみる

Grails で Hello World してみる

Groovy in Action や Grails 徹底入門を読みながら Grails をマスターしようとしている。 まずはドメインクラスをつくって...CRUDのスカッフォールドして...という流れが基本だとは思うが ここではまずもっと基本的な Hello World 表示だけをやってみたのでメモ。

コントローラのアクションとビューの関連付けがどうなっているのかわかなかったので その辺の理解も含めて。

Hello, World! を表示させる

Grails のインストールは済んでいることとする。

Step1 アプリケーションの作成

grails create-app helloworld 

./helloworld 以下にウェブアプリケーションのひな形?が生成されます。

Step2 コントローラの作成

Hello World 表示だけなので、ドメインクラスは必要ない。 いきなりコントローラを作成します。

cd helloworld
grails create-controller hello

以下のファイルが生成される。

HelloController.groovy にアクションを記述

create-controller hello したときに ひな形として以下のコードが生成されている。

package helloworld

class HelloController {

    def index = { } 
}

これを自分用に変更する。

package helloworld

class HelloController {

    def index = { 
        [msg:'Hello, World!']
    }
}

'msg'というキーと'Hello, World!'という値をもったマップを返すように変更。

Step3 ビューの作成

HelloControllerの index に対応した ビューを grails-app/views/hello/index.gsp に作成します。

<html>
<body>${msg}</body>
</html>

Step4 アプリケーションを起動して確認

helloworld アプリケーションのルートディレクトリに移動して run-app します。

grails run-app 

そして、 http://localhost:8080/helloworld/ にブラウザでアクセス。

さらに、helloworld.HelloController のリンクをクリックして...

どうやら Grails では、 controllers/helloworld/HelloController.groovy 内のアクション名に対応したビューを views/hello/index.gsp ( views/コントローラ名/アクション名.gsp ) に 配置しておく約束になっているようだ。

Step5 別のアクションとビューの作成

アクションとビューの対応関係を確認するため、 もうひとつ別のアクションと対応するビューを作成してみる。

コントローラにアクションを追加

以下のように HelloController.groovy に test というアクションを追加。

package helloworld

class HelloController {

    def index = { 
        [msg:'Hello, World!']
    }   
    def test = { 
        [msg:'Hello again, Grails!']
    }   
}

indexアクションと区別するために、Hello again, Grails! という値を返すように変更。

対応するビューを追加

さらに HelloControllerの test に対応した ビューを grails-app/views/hello/test.gsp に作成します。

<html>
<body>${msg}</body>
</html>

この状態で、 http://localhost:8080/helloworld/hello/test にアクセスすると見事に表示できました。