GSPのカスタムタグを使おう (1/4)
作成:2013-10-19 08:14
更新: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>
入力フィールド関連のタグです。nameやvalueなどは通常の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属性に送信先のイベントハンドラメソッドを指定することで、そのメソッドで送信後の処理をさせることができます。
――とりあえず、これらを覚えればフォーム関連の基本はほぼマスターできるようになります。
<g:form>タグ
url――送信先の指定。アドレスを直接指定する場合に使う。
controller/action――コントローラーとアクションを個別に指定する場合に使う。
フォームのタグ(<form>)を生成するものです。送信先をコントローラーとアクションで指定できるので、よりコントローラーを意識したフォーム作成となります。
<g:textField>
<g:passwordField>
<g:hiddenField>
入力フィールド関連のタグです。nameやvalueなどは通常の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属性に送信先のイベントハンドラメソッドを指定することで、そのメソッドで送信後の処理をさせることができます。
――とりあえず、これらを覚えればフォーム関連の基本はほぼマスターできるようになります。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ