カスタムタグ

Cubbyのカスタムタグはフォーム値の表示・復元・バリデーション結果の反映に使用します。 以下のタグライブラリ宣言を行うことでカスタムタグが使用できます。

<%@ taglib uri="http://www.seasar.org/cubby/tags" prefix="t" %>

Cubby のカスタムタグは、全て JSP2.0のDynamic-Attribute に対応しています。 カスタムタグに定義されていない属性はそのまま素直に出力されます。

カスタムタグ一覧

用途タグ名説明
入力フォーム作成formform タグを出力します。
入力フォーム作成inputinput タグを出力します。
入力フォーム作成selectselect タグと option タグを出力します。
入力フォーム作成textareatextarea タグを出力します。
レイアウト共用template指定テンプレート JSP に従ってレイアウトします。
特殊null何も出力しません。

form

HTML の form タグを出力します。 Cubby の input/select/textarea タグで参照するフォーム用オブジェクトを指定するために使用します。

属性名EL式の使用必須説明
valueObjectフォームオブジェクトを指定します。

使用例

<t:form value="${action}">
  ...
<t:/form>

結果

<form>
  ...
</form>

input

HTML の input タグを出力します。

属性名EL式の使用必須説明
nameStringvalue 属性として出力する値を取得するプロパティ名を指定します。
この属性の値は name 属性としてそのまま出力されます。
typeStringtext/password/checkbox/radio/hidden が指定できます。
この属性の値は type 属性としてそのまま出力されます。
checkedValueString×type 属性が radio/checkbox の場合にポストされる値を指定します。
この値と name 属性で指定したプロパティから取得した値が一致した場合には checked 属性が true になります。
type 属性が radio/checkbox の場合は必ず指定してください。

使用例

<t:input name="title"/>

結果

<input name="title" value="Todo Title"/>

select

HTML の select タグと option タグを出力します。

属性名EL式の使用必須説明
nameStringselected 属性を付加する option タグを決めるための値を取得するプロパティ名を指定します。
この属性の値は name 属性としてそのまま出力されます。
itemsStringoption タグの内容を表すリストを指定します。
valuePropertyStringitems 属性で指定したリストの要素から、option タグの値として使用するプロパティ名を指定します。
labelPropertyStringitems 属性で指定したリストの要素から、option タグの表示文字列として使用するプロパティ名を指定します。
emptyOptionBoolean×空白の option タグを出力するかどうかを指定します。
省略した場合は true と見なして先頭に空白の option タグが出力されます。
emptyOptionLabelString×空白の option タグの表示文字列を指定します。
省略した場合は何も表示されません。 true と見なして先頭に空白の option タグが出力されます。

使用例

<t:select name="typeId" items="${todoTypes}" labelProperty="name" valueProperty="id"/>

結果

<select name="typeId">
  <option name="1">TodoType 1</option>
  <option name="2">TodoType 2</option>
</select>

textarea

HTML の textarea タグを出力します。

属性名EL式の使用必須説明
nameStringvalue 属性として出力する値を取得するプロパティ名を指定します。
この属性の値は name 属性としてそのまま出力されます。

使用例

<t:textarea name="memo"/>

結果

<textarea name="memo">Memo 1<textarea name="memo">

template

指定した JSP をテンプレートとして使用します。 レイアウトを継承したい場合に使用してください。

現在のバージョンでは1段階のレイアウト継承のみ対応しています。 将来的には多段階の継承に対応する予定です。

属性名EL式の使用必須説明
extendsStringテンプレートとして使用するJSPを指定します。
その他の属性Stringテンプレート内で使用するパーツ名を属性名として、表示するHTMLを値として指定します。

使用例

<t:template extends="/template.jsp">
  <jsp:attribute name="title">タイトル</jsp:attribute>
  <jsp:attribute name="content">
    表示コンテンツ
    <t:form ...>...</t:form>
  </jsp:attribute>
</t:template>

テンプレート (/template.jsp)

...
<title>${parts['title']}</title>
...
<div id="header">...</div>
<div id="content>
${parts['content']}
</div>
<div id="footer">...</div>

結果

...
<title>タイトル</title>
...
<div id="header">...</div>
<div id="content>
表示コンテンツ
<form>...</form>
</div>
<div id="footer">...</div>

null

このタグで囲まれた領域は出力されません。 JSP のプレビュー用に表示したいダミーの HTML などをこのタグで囲みます。

このタグに属性はありません。

使用例

<t:null>Dummy HTML</t:null>

結果

何も出力されません