コントローラーとビューの基本 (2/5)
作成:2013-10-12 10:56
更新:2013-10-12 10:56
更新:2013-10-12 10:56
■ビューテンプレートを作る
実際にページを作成する場合、HTMLのコードをテキストで用意してrender、なんてやりかたはしません。やはり、あらかじめ表示するHTMLページを用意し、それを利用して表示を作成するのが一般的です。
Grailsでは、ページは「ビューテンプレート」として作成されます。テンプレート、つまりページがそのまま表示されるわけではなく、その内容を元にレンダリングして実際の表示を作成するようになっているわけです。
このビューテンプレートには、GSPと呼ばれるものを使います。これは「Groovy Server Pages」というもので、JSP(Java Server Pages)のGroovy版といったものです。これは「○○.gsp」という名前で作成します。
ビューテンプレートは、「grails-app」フォルダ内の「views」内に作成されます。このフォルダの中には、コントローラーごとにフォルダが作成されているはずです。サンプルでは、「helo」というフォルダが用意されています。この中に、コントローラーのアクションと同名のGSPファイルを作成します。
GGTSを使っている場合は、Project Explorerのアプリケーション内に「controllers」「views」というようにMVCのフォルダが表示され、その中に各ファイルがまとめて表示されます。「views」内の「helo」の中にGSPファイルを作成すればいいわけです。
では、実際にやってみましょう。「views」内の「helo」内に、「index.gsp」というファイルを作成してください。そして下のリスト欄のようにソースコードを記述しましょう。見ればわかるように、これはただのHTMLです。とりあえず、ページを表示するサンプルということで何も仕掛けは作ってありません。
作成したら、コントローラーを修正しましょう。HeloControllerクラスを、下のリスト欄のように修正をします。これも見ればわかるように、indexメソッドの中にあったrenderを削除して、メソッドの中身をカラっぽにしただけです。これでOKなのです。
Grailsのコントローラーにあるアクションは、renderなどのレンダリング処理を何も呼び出さなければ、メソッド実行後、メソッドと同名のビューテンプレートを読み込んでレンダリングし表示します。indexメソッドであれば、index.gspというファイルをコントローラー名のフォルダ(ここでは「views」内にある「helo」フォルダ)から探してレンダリングし表示するのです。
Grailsでは、ページは「ビューテンプレート」として作成されます。テンプレート、つまりページがそのまま表示されるわけではなく、その内容を元にレンダリングして実際の表示を作成するようになっているわけです。
このビューテンプレートには、GSPと呼ばれるものを使います。これは「Groovy Server Pages」というもので、JSP(Java Server Pages)のGroovy版といったものです。これは「○○.gsp」という名前で作成します。
ビューテンプレートは、「grails-app」フォルダ内の「views」内に作成されます。このフォルダの中には、コントローラーごとにフォルダが作成されているはずです。サンプルでは、「helo」というフォルダが用意されています。この中に、コントローラーのアクションと同名のGSPファイルを作成します。
GGTSを使っている場合は、Project Explorerのアプリケーション内に「controllers」「views」というようにMVCのフォルダが表示され、その中に各ファイルがまとめて表示されます。「views」内の「helo」の中にGSPファイルを作成すればいいわけです。
では、実際にやってみましょう。「views」内の「helo」内に、「index.gsp」というファイルを作成してください。そして下のリスト欄のようにソースコードを記述しましょう。見ればわかるように、これはただのHTMLです。とりあえず、ページを表示するサンプルということで何も仕掛けは作ってありません。
作成したら、コントローラーを修正しましょう。HeloControllerクラスを、下のリスト欄のように修正をします。これも見ればわかるように、indexメソッドの中にあったrenderを削除して、メソッドの中身をカラっぽにしただけです。これでOKなのです。
Grailsのコントローラーにあるアクションは、renderなどのレンダリング処理を何も呼び出さなければ、メソッド実行後、メソッドと同名のビューテンプレートを読み込んでレンダリングし表示します。indexメソッドであれば、index.gspというファイルをコントローラー名のフォルダ(ここでは「views」内にある「helo」フォルダ)から探してレンダリングし表示するのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※index.gspのソースコード <!DOCTYPE html> <html> <head> <title>Grails Helo</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body {color: #006600;} h1 {background: #99ff99;font-size: 14pt;padding: 5px;} h2 {font-size: 12pt; font-weight: bold;} p {font-size: 10pt;} </style> </head> <body> <h1>Index Page</h1> <h2>This is Index Page.</h2> <p>これは、Grailsのサンプルです。</p> </body> </html> ※HeloControllerのソースコード package gralisapp class HeloController { def index() {} }
※関連コンテンツ