Cubbyのカスタムタグはフォーム値の表示・復元・バリデーション結果の反映に使用します。 以下のタグライブラリ宣言を行うことでカスタムタグが使用できます。
<%@ taglib uri="http://www.seasar.org/cubby/tags" prefix="t" %>
Cubby のカスタムタグは、全て JSP2.0のDynamic-Attribute に対応しています。 カスタムタグに定義されていない属性はそのまま素直に出力されます。
カスタムタグ一覧
用途 | タグ名 | 説明 |
入力フォーム作成 | form | form タグを出力します。 |
入力フォーム作成 | input | input タグを出力します。 |
入力フォーム作成 | select | select タグと option タグを出力します。 |
入力フォーム作成 | textarea | textarea タグを出力します。 |
2重サブミット防止 | token | 2重サブミットを防止します。 |
HTML の form タグを出力します。 Cubby の input/select/textarea タグで参照するフォーム用オブジェクトを指定するために使用します。
属性名 | 型 | EL式の使用 | 必須 | 説明 |
value | Object | ○ | ○ | フォームオブジェクトを指定します。 |
使用例
<t:form value="${action}"> ... <t:/form>
結果
<form> ... </form>
HTML の input タグを出力します。
属性名 | 型 | EL式の使用 | 必須 | 説明 |
name | String | ○ | ○ | value 属性として出力する値を取得するプロパティ名を指定します。 この属性の値は name 属性としてそのまま出力されます。 |
index | Integer | ○ | × | name 属性が同じフィールドが複数ある場合に、何番目の要素なのかを指定します。 |
type | String | ○ | ○ | text/password/checkbox/radio/hidden が指定できます。 この属性の値は type 属性としてそのまま出力されます。 |
value | String | ○ | ○ | type 属性が radio/checkbox の場合にポストされる値を指定します。この属性の値は value 属性としてそのまま出力されます。 この値と name 属性で指定したプロパティから取得した値が一致した場合には checked 属性が true になります。 type 属性が radio/checkbox の場合は必ず指定してください。 |
checkedValue | String,配列,java.util.Collection | ○ | × | formを指定しない場合に、比較対象となる値を指定します。 この値と value 属性で指定したプロパティから取得した値が一致した場合には checked 属性が true になります。 フォームオブジェクトを指定しなかった場合、かならず指定してください。 |
使用例
<t:input name="title"/>
結果
<input name="title" value="Todo Title"/>
HTML の select タグと option タグを出力します。
属性名 | 型 | EL式の使用 | 必須 | 説明 |
name | String | ○ | ○ | selected 属性を付加する option タグを決めるための値を取得するプロパティ名を指定します。 この属性の値は name 属性としてそのまま出力されます。 |
items | 配列,java.util.Collection | ○ | ○ | option タグの内容を表すリストを指定します。 |
valueProperty | String | ○ | ○ | items 属性で指定したリストの要素から、option タグの値として使用するプロパティ名を指定します。 |
labelProperty | String | ○ | ○ | items 属性で指定したリストの要素から、option タグの表示文字列として使用するプロパティ名を指定します。 |
emptyOption | Boolean | ○ | × | 空白の option タグを出力するかどうかを指定します。 省略した場合は true と見なして先頭に空白の option タグが出力されます。 |
emptyOptionLabel | String | ○ | × | 空白の 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>
HTML の textarea タグを出力します。
属性名 | 型 | EL式の使用 | 必須 | 説明 |
name | String | ○ | ○ | value 属性として出力する値を取得するプロパティ名を指定します。 この属性の値は name 属性としてそのまま出力されます。 |
index | Integer | ○ | × | name 属性が同じフィールドが複数ある場合に、何番目の要素なのかを指定します。 |
使用例
<t:textarea name="memo"/>
結果
<textarea name="memo">Memo 1</textarea>
2重サブミットを防止します。
属性名 | 型 | EL式の使用 | 必須 | 説明 |
name | String | ○ | × | input type="hidden"/ タグのname属性を指定します。通常は省略可能です。省略した場合、nameの属性名は「cubby.token」になります。 |
使用例
<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"); } }