Grails > Hello World

更新日 2014-12-06
広告

GrailsでHello Worldを表示するところまで紹介します (Grails 2.x)。 (参考: インストール記事)

環境の準備

まず、Webアプリケーションの環境を準備します。これには、grailsコマンドを使います。Webアプリケーション環境を配置したいディレクトリに移動して、以下のようにします。

$ grails create-app myapp

'create-app'は、grailsコマンドのオプションです。 これで、Webアプリ環境を作成します。'myapp'は、Webアプリの名前です。今回は 'myapp' とします。

上記コマンドの実行が終わると、myapp ディレクトリが作成されているはずです。

$ cd myapp/
$ ls
application.properties  grails-app  lib  scripts  src  test  web-app

このように、myappディレクトリの下に、Webアプリの環境が準備されます。

  • grails-appディレクトリの下に、Webアプリ用のGroovyプログラムを作成します。
  • libディレクトリの下に、必要に応じて、Webアプリで使用するライブラリを置きます(自動的にクラスパスは通してくれないので注意)。
  • testディレクトリの下に、ユニットテスト用のプログラムを作成します。
  • web-appディレクトリの下に、必要に応じて、Webアプリで使用するJavaScriptファイルやCSSファイルを置きます。ただし、Grails 2.4以降は別の場所に置きます(こちらの記事)。

コントローラの作成

次に、myappディレクトリにて、以下のコマンドを実行し、grailsモードに入ります。

$ grails
grails>
そして、コントローラ(MVCにおける'C')を作成します。
grails> create-controller hello
   :
| Created file grails-app/controllers/myapp/HelloController.groovy
| Created file grails-app/views/hello
| Created file test/unit/myapp/HelloControllerTests.groovy
'hello'というのは、作成するコントローラの名前です(別に、自分でファイルを作成しても問題ありません。grailsコマンドから作成すると、テスト用のテンプレートクラスまで自動的に作成してくれるから楽ということです)。 grailsモードに入らなくても、以下のようにすれば、同じことができます。
$ grails create-controller hello

この場合、grailsコマンドの実行のたびにJava VMを起動することになるため、その分時間がかかります。 メモリに余裕があるなら、grailsモードに入って作業するほうが速いでしょう。

create-controllerで作成されたファイルとディレクトリを説明します。

  • HelloController.groovy : コントローラとなるクラスです。grails-app/controllersディレクトリ以下に作成されます。create-controllerコマンドを実行する際に、package名を指定しなかった場合、Webアプリ名(この場合はmyapp)がpackage名となります。
  • views/hello : .gspファイルを配置するディレクトリ(Java Server Pagesにおける.jspファイルに相当)
  • HelloControllerTests.groovy : HelloController.groovyに対するユニットテスト用のファイル
このように、コマンドを実行してコントローラやドメインのクラスファイルを作成し、プログラムを追加していくことで、Webアプリを開発するのがGrailsのスタイルです。

コントローラの実装

「ブラウザに Hello World を表示する」というプログラムを、HelloController.groovyに実装します。 作成されたばかりのHelloController.groovyは以下のようになっています。
package myapp

class HelloController {
  def index() { }
}
これを以下のように修正します。;
package myapp

class HelloController {
  def index() {
    render "Hello World!"
  }
}
これで準備完了です。

Webアプリの起動

Webアプリを起動します。 Tomcatにおける startup.sh の実行と同等です。
grails> run-app
| Server running. Browse to http://localhost:8080/myapp
| Application loaded in interactive mode. Type 'exit' to shutdown.
| Enter a script name to run. Use TAB for completion: 

ブラウザから、 http://localhost:8080/myapp にアクセスすると、myapp.HelloControllerへのリンクが表示されるはずです('localhost'の部分は、Grailsを動かしているサーバのIPアドレスを指定してください)。 リンクをクリックすると、Hello World! と表示されるはずです。

GrailsのURLは、 '/Webアプリ名/コントローラ名/アクション名' で、決まります。

  • Webアプリ名 : create-app のときに指定したWebアプリ名(今回は'myapp')
  • コントローラ名 : create-controller のときに指定したコントローラ名(今回は'hello')
  • アクション名 : コントローラのメソッド名(今回は'index')

Webアプリの停止

最期に、Webアプリを停止します。
grails> exit
| Stopping Grails server
おつかれさまでした。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system