今日の目標
Grailsを触ってみる
使うもの
- GGTS 3.6.4.RELEASE
- grails-2.4.4
- Windows 8.1
参考
Grailsとは
Grails (グレイルズ)は、プログラミング言語 Groovy を使用するオープンソースのWebアプリケーションフレームワーク。Grails や Groovy はJavaプラットフォーム上で動作する。「設定より規約 (convention over configuration)」というパラダイムにより高い生産性を実現し、スタンドアロンの開発環境を提供しつつ、開発者からはその設定の詳細を隠蔽している。
新しい言語だと思ってました。フレームワークなんですね、初めて知った。設定より規約というのはRubyでも聞いたような。
ではスタート
準備
せっかくなので統合IDEをインストールして使おうと思います。
しかし、なんでSpringのサイトなんだろう?(家のネットワーク環境が悪すぎてGGTSインストールに3時間かかったという…フレッ●光とは)
ダウンロードしたら任意の場所に展開します。そして、内包されているggts-bundle\ggts-3.6.4.RELEASE\GGTS.exe
を実行!(GGTSはEclipseチックとのことですが、フォルダの構成見ると、確かにEclipseのフォルダ構成と似てる気がします)
起動後はこんな感じ。Eclipseだ!
とりあえず真っ先に文字コードをUTF-8にして、JREを確認しました。Eclipseと設定の仕方が同じなのでなじみやすいです。
Grailsプロジェクトを作ってみる
まずはプロジェクト作んなきゃね!ということで、新規作成でGrails Project
を選びます。
プロジェクト名を付けてFinish
すると、勝手にMavenが動いてくれるみたいです(compile --non-interactive --refresh-dependencies)。実行環境のモジュール(Tomcatとか)も落としてくれるみたいなので、実行が楽そうです。
Grails Project
はgrails create-app 【アプリケーション名】
を実行したのと同じ見たいです。必要なものはすでに用意してくれてます。
各フォルダの意味は参考サイトに上げさせていただいた初心者のためのGroovy/Grails入門
のGrailsアプリケーションの構成を理解するを見てみてください。
Controllerを作る
次はControllerを作ります。MVCのCさんですね。New->Controller
で作成。
Finish
すると2つのクラスができます。何だろうと思ったら、HelloCotrollerSpec.groovyのほうはテストクラスなんですね。よくよく見れば、確かにtest/unitの下にありました。
- HelloController.groovy
- HelloControllerSpec.groovy
試しにHelloController.groovyのほうにHelloを書く。
package hellograils
class HelloController {
def index() {
def name = "torinist"
render "<html><body><h1>Hello, " + name + "</h1><p>Welcome to Grails!</p></body></html>";
}
}
実行
作ったので実行します。renderは引数で渡したものをレスポンスとして返すみたいです。レスポンスとして渡す形式は変えられるみたいですね。指定した形式に変換してくれる、ってことかな。今回は単純な文字列として返してますが、文字列は文字列でもHTMLが入っているのでブラウザでレンダリングして表示されるはず。(grails->render)
ということで実行します。
Window->Show View->Serversを選ぶと、すでに一つサーバが見えます(Pivotal tc Serverうんたらかんたら)。こいつにプロジェクトを実行してもらいましょう。
サーバを右クリックして、Add and Remove
で作ったプロジェクトを右側に移動させて、OK
。また右クリックしてStart
を選択。ステータスがStarted
になったら動作したので、ブラウザで閲覧。
アクセスは以下の通りにします。
【サーバ名】:【ポート】/【プロジェクト名】/【Controller名】/【メソッド名】
例:
- サーバ名:localhost
- ポート:8080(もともと入っているのはTomcatみたいなので8080でアクセスできます)
- プロジェクト名:そのまま
- Controller名:先頭を小文字にして、
Controller
を省いた文字列になります - メソッド名:index
Grails面白い。