libro
www.tuyano.com
初心者のためのGroovy/Grails入門

GSPのカスタムタグを使おう (1/4)

作成:2013-10-19 08:14
更新:2013-10-19 08:14

■フォーム関連のカスタムタグ

前回、<g:form>を使ってフォームを作りました。<g:form>によってフォームを作成するために、GSPにはフォーム用コントロール類のためのカスタムタグがひと通り揃っています。それらについて整理しておきましょう。

<g:form>タグ
url――送信先の指定。アドレスを直接指定する場合に使う。
controller/action――コントローラーとアクションを個別に指定する場合に使う。

フォームのタグ(<form>)を生成するものです。送信先をコントローラーとアクションで指定できるので、よりコントローラーを意識したフォーム作成となります。

<g:textField>
<g:passwordField>
<g:hiddenField>

入力フィールド関連のタグです。namevalueなどは通常のHTMLタグと同様に使えます。

<g:textArea>
テキストエリア(<textarea>)タグです。rows, colsなどそのまま使えます。これは<textarea>と違い、閉じタグを用意する必要がなく1つのタグだけですみます。入力テキストはvalueで指定できます。

<g:checkBox>
チェックボックスのタグです。checkedをtrueに設定することでチェックをONにできます。

<g:radio>
ラジオボタンのタグです。やはりcheckedをtrueにして選択状態にできます。ただしラジオボタンは次の<g:radioGroup>を使うことのほうが多いでしょう。

<g:radioGroup>
values――ラジオボタンの値データ。Mapリテラルでラジオボタンのvalueをすべて記述する。
labels――ラジオボタンに表示するテキストのデータ。やはりMapリテラルとして記述する。

グループ化された複数のラジオボタンをまとめて生成するタグです。values属性を必ず用意します。ここに、表示する各ラジオボタンの値をMapにまとめて記述しておけば、それを元に必要なだけラジオボタンが生成されます。valuesだけを指定した場合、値も表示テキストもこのvaluesを使うことになるでしょう。それぞれを別々に用意したい場合は、labelsに表示テキストをMapとして用意しておくのが一般的です。

生成されるラジオボタンは、この<g:radioGroup>タグ内では「it」というオブジェクトとして用意されます。このit内から「radio」プロパティを出力することで、ラジオボタンのタグが書きだされます。<g:radioGroup>自体は、ラジオボタンの出力まで自動でやってくれるわけではありません。生成の枠組みを用意してくれるだけなので注意が必要です。(詳細は次で)

<g:select>
from――表示する項目を指定する。MapやRangeなどを値に設定しておく。
noSelection――未選択を示す項目名。
mutiple――真偽値。
optionKey/optionValue――オブジェクトをfromに指定した場合、そのオブジェクト内のキーと値として扱うプロパティ名を指定する。

<select>タグによるリストを生成するものです。生成する<option>タグのデータはfromにMapなどを使い用意しておきます。他、オブジェクトを使って値を設定するためにoptionKey/optionValueという属性も用意されています。

<g:submitButton>
<g:actionSubmit>

送信ボタンを生成するものです。<g:submitButton>は通常の送信を行います。送信先は、<g:form>で指定したとおりになります。<g:actionSubmit>は送信先を指定することのできる送信ボタンです。これはaction属性に送信先のイベントハンドラメソッドを指定することで、そのメソッドで送信後の処理をさせることができます。


――とりあえず、これらを覚えればフォーム関連の基本はほぼマスターできるようになります。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのGroovy/Grails入門」に戻る