##### プロジェクト文書

- プロジェクト情報
- プロジェクトレポート
  - Change Log
  - Cobertura Test Coverage
  - Developer Activity
  - File Activity
  - JavaDocs
  - JDepend
  - Source Xref
  - Surefire Report
  - Taglibdoc documentation
  - Tag library validation
  - Tag reference
  - Test JavaDocs
  - Test Source Xref

##### 親プロジェクト

- Cubby Project

## Tag reference sheet

Tag library reference for the following tag libraries:

- Cubby functions (cubby-functions.tld) - uri: http://www.seasar.org/cubby/functions
- Cubby tags (cubby-tags.tld) - uri: http://www.seasar.org/cubby/tags

## Cubby functions

Cubby functions

This is version 1.0.

Required attributes are marked with a *

## Cubby tags

Cubby tag library

This is version 1.0.

- form HTML の form タグを出力します。 t:input/t:select/t:textarea タグで参照するフォームオブジェクトを指定します。
- input HTML の input タグを出力します。
- link アクションクラス名、アクションメソッド名から URL を出力します。 ボディ部に t:param タグ置くことで、URL 埋め込みのパラメータやクエリ文字列のパラメータを指定することができます。
- param t:form、t:link のボディ部でパラメータを指定するためのタグです。
- select HTML の select タグと option タグを出力します。
- textarea HTML の textarea タグを出力します。
- token 2重サブミット防止用の input タグ(type="hidden")を出力します。

Required attributes are marked with a *

### <t:form>

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

t:input/t:select/t:textarea タグで参照するフォームオブジェクトを指定します。

Can contain: JSP

#### Example

    [1] action 属性を JSP 上で指定する
    (JSP)
    <t:form action="${contextPath}/foo/bar" value="${action}">
      ...
    </t:form>

    (実行結果)
    <form action="/(contextPath)/foo/var"&>
      ...
    </form>

    [2] action 属性をクラス、メソッドで指定する
    (JSP)
    <t:form actionClass="com.example.action.FooAction" actionMethod="bar" value="${action}">
      ...
    </t:form>

    (実行結果)
    <form action="/(contextPath)/foo/var" >
      ...
    </form>

    [3] プロトコル(HTTPS)を指定する
    (JSP)
    <t:form actionClass="com.example.action.FooAction" actionMethod="bar" value="${action}" protocol="https">
      ...
    </t:form>

    (実行結果)
    <form action="https://www.example.com/(contextPath)/foo/bar" >
      ...
    </form>

#### Attributes

Name | Description | Type
--- | --- | ---
actionClass | アクションクラス、メソッドから action 属性を生成するためのアクションクラスを FQCN で指定します。 この属性を指定した場合は、必ず actionMethod 属性も指定してください。 JSP 上に action 属性が指定してあった場合はこの属性から生成した URL で上書きされます。 URL 埋め込みパラメータやクエリ文字列のパラメータが必要な場合は t:param タグをボディ部に指定してください。 指定方法は t:link タグと同様です。 | String
actionMethod | アクションクラス、メソッドから action 属性を生成するためのアクションメソッドを指定します。 この属性を指定した場合は、必ず actionClass 属性も指定してください。 | String
encodeURL | 出力する URL を HttpServletResponse#encodeURL(String) でエンコードするかを指定します。デフォルトは true です。 | String
port | 出力する URL のポートを指定します。 | String
protocol | 出力する URL のプロトコルを指定します。主にhttps/httpの切り替えに使用します。 | String
value* | フォームオブジェクトを指定します。 | String

### <t:input>

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

Can contain: scriptless

#### Example

    (JSP)
    <t:input name="title"/>

    (実行結果)
    <input name="title" value="Todo Title"/>

#### Attributes

Name | Description | Type
--- | --- | ---
checkedValue | type 属性が radio/checkbox の場合に、フォームオブジェクトの値よりも優先的に比較対象となる値を指定します。 この値と value 属性の値が一致した場合には checked 属性が true になります。 | String
index | name 属性で指定したフォームオブジェクトのプロパティに複数の値がある場合に、何番目の要素なのかを指定します。 | String
name* | value 属性として出力する値を取得するフォームオブジェクトのプロパティ名を指定します。 この属性の値は name 属性としてそのまま出力されます。 | String
type* | この属性の値は type 属性としてそのまま出力されます。 | String
value | この属性の値は value 属性としてそのまま出力されます。 指定しなかった場合は name 属性で指定したフォームオブジェクトのプロパティから取得した値が value 属性として出力されます。 type 属性が radio/checkbox の場合は、この値と name 属性で指定したフォームオブジェクトのプロパティから取得した値(もしくは checkedValue で指定した値)が一致した場合には checked 属性が true になりますので、必ず指定するようにしてください。 | String

### <t:link>

アクションクラス名、アクションメソッド名から URL を出力します。

ボディ部に t:param タグ置くことで、URL 埋め込みのパラメータやクエリ文字列のパラメータを指定することができます。

Can contain: scriptless

#### Example

    [1] URL をそのまま出力
    (JSP)
    <t:link actionClass="com.example.action.FooAction" actionMethod="bar" />

    (実行結果)
    /(contextPath)/foo/bar

    [2] URL を a タグに出力
    (JSP)
    <t:link actionClass="com.example.action.FooAction" actionMethod="bar"
            tag="a" attr="href">
        link to action
    </t:link>

    (実行結果)
    <a href="/(contextPath)/foo/bar">
        link to action
    </a>

    [3] パラメータ指定 (アクションメソッドに @Path("baz/{id}") という指定があった場合)
    (JSP)
    <t:link actionClass="com.example.action.FooAction" actionMethod="bar"
            tag="a" attr="href">
        <t:param name="id" value="123" />
        <t:param name="token" value="abc" />
        link to action
    </t:link>

    (実行結果)
    <a href="/(contextPath)/foo/bar/123&token=abc">
        link to action
    </a>

    [4] プロトコル(HTTPS)を指定して出力
    (JSP)
    <t:link actionClass="com.example.action.FooAction" actionMethod="bar" protocol="https"/>

    (実行結果)
    https://www.example.com/(contextPath)/foo/bar

#### Attributes

Name | Description | Type
--- | --- | ---
actionClass* | FQCN 形式でアクションクラスを指定します。 | String
actionMethod* | アクションメソッドを指定します。 | String
attr | tag 属性が指定された時に、a なら href、img なら src など、タグのどの属性に URL を出力するかを指定します。 tag 属性を指定したときは必ず指定してください。 | String
encodeURL | 出力する URL を HttpServletResponse#encodeURL(String) でエンコードするかを指定します。デフォルトは true です。 | String
port | 出力する URL のポートを指定します。 | String
protocol | 出力する URL のプロトコルを指定します。主にhttps/httpの切り替えに使用します。 | String
tag | URL を a や img など、指定された HTML タグの属性として出力します。 この属性を指定したときは、必ず attribute 属性も指定してください。 | String

### <t:param>

t:form、t:link のボディ部でパラメータを指定するためのタグです。

Can contain: scriptless

#### Attributes

Name | Description | Type
--- | --- | ---
name* | パラメータ名です。 | String
value | パラメータの値です。 この属性が指定されていない場合はボディ部を値として使用します。 | String

### <t:select>

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

Can contain: scriptless

#### Example

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

    (実行結果)
    <select name="typeId">
      <option value="1">TodoType 1</option>
      <option value="2">TodoType 2</option>
    </select>

#### Attributes

Name | Description | Type
--- | --- | ---
emptyOption | 空白の option タグを出力するかどうかを指定します。 省略した場合は true と見なして先頭に空白の option タグが出力されます。 | String
emptyOptionLabel | 空白の option タグの表示文字列を指定します。 省略した場合は何も表示されません。 | String
items* | option タグの内容を表すリストを指定します。 配列や java.util.Collection、java.util.Map 型が指定できます。 | String
labelProperty | items 属性で指定したリストの要素から、option タグの表示文字列として使用するプロパティ名を指定します。 items 属性で指定した型が java.util.Map の場合は無視されます。 | String
name* | selected 属性を付加する option タグを決めるための値を取得するプロパティ名を指定します。 この属性の値は name 属性としてそのまま出力されます。 | String
valueProperty | items 属性で指定したリストの要素から、option タグの値として使用するプロパティ名を指定します。 items 属性で指定した型が java.util.Map の場合は無視されます。 | String

### <t:textarea>

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

Can contain: scriptless

#### Example

    (JSP)
    <t:textarea name="memo"/>

    (実行結果)
    <textarea name="memo">Memo 1</textarea>

#### Attributes

Name | Description | Type
--- | --- | ---
index | name 属性で指定したフォームオブジェクトのプロパティに複数の値がある場合に、何番目の要素なのかを指定します。 | String
name* | value 属性として出力する値を取得するフォームオブジェクトのプロパティ名を指定します。 この属性の値は name 属性としてそのまま出力されます。 | String
value | この属性の値は value 属性としてそのまま出力されます。 指定しなかった場合は name 属性で指定したフォームオブジェクトのプロパティから取得した値が value 属性として出力されます。 | String

### <t:token>

2重サブミット防止用の input タグ(type="hidden")を出力します。

Can contain: scriptless

#### Example

    (JSP)
    <t:form value="${action}">
      <t:token / >
    <t:/form>

    (実行結果)
    <form>
      <input type="hidden" name="cubby.token" value="ランダムな文字列...">
    </form>

    (アクション)
    public class TokenAction extends Action {
      ...
      public ValidationRules validation = new DefaultValidationRules() {
      @Override
        public void initialize() {
          add("cubby.token", new TokenValidator());
        }
      };
      ...
      @Form
      @Validation(errorPage="token.jsp", rules = "validation")
      public ActionResult message() {
        return new Forward("result.jsp");
      }

    }

#### Attributes

Name | Description | Type
--- | --- | ---
name | value 属性として出力する値を取得するフォームオブジェクトのプロパティ名を指定します。 この属性の値は name 属性としてそのまま出力されます。 name 属性が省略された場合の初期値は「cubby.token」です。 | String