Cubby functions Cubby functions 1.0 f http://www.seasar.org/cubby/functions 配列やコレクションに指定したオブジェクトが含まれるかどうかを判定します。 contains org.seasar.cubby.tags.CubbyFunctions java.lang.Boolean contains( java.lang.Object, java.lang.Object ) <c:if test="${f:contains(idlist, '1001')}"> ... </c:if> Map に指定したキーが含まれるかどうかを判定します。 containsKey org.seasar.cubby.tags.CubbyFunctions java.lang.Boolean containsKey( java.util.Map, java.lang.Object ) <c:if test="${f:containsKey(idmap, '1001')}"> ... </c:if> Map に指定した値が含まれるかどうかを判定します。 containsValue org.seasar.cubby.tags.CubbyFunctions java.lang.Boolean containsValue( java.util.Map, java.lang.Object ) <c:if test="${f:containsValue(idmap, '値1')}"> ... </c:if> 指定したカンマ区切りの文字列をインデックス値でサイクルして出力します。 主に行毎に色分けする場合にCSSのクラス名を出力する場合に使用します。 下記の例では、status.indexを2で割って余りが0の場合「odd」、1の場合「even」が出力されます。 odd org.seasar.cubby.tags.CubbyFunctions java.lang.String odd( java.lang.Integer, java.lang.String ) <c:forEach var="todo" items="${action.todoList}" varStatus="status"> <tr class="${f:odd(status.index, 'odd,even')}"> ... </tr> </c:forEach> HTML をエスケープします。JSTL の out タグの代わりに使用します。 EL 式で出力された文字列はエスケープされないため、エスケープを行いたい場合はこの function を使用します。 out org.seasar.cubby.tags.CubbyFunctions java.lang.String out( java.lang.Object ) ${f:out(user.name)}さんこんにちは 文字列 をBase64形式でエンコードします。JSTL の url タグの代わりに使用します。 HttpServletRequest#getCharacterEncoding()で取得した文字コードでエンコードされます。 url org.seasar.cubby.tags.CubbyFunctions java.lang.String url( java.lang.Object ) ${f:url(wiki.pageName)} Date 型のオブジェクトをフォーマットして出力します。JSTL の dateFormat タグの代わりに使用します。 dateFormat org.seasar.cubby.tags.CubbyFunctions java.lang.String dateFormat( java.lang.Object, java.lang.String ) ${f:dateFormat(todo.limitDate, "yyyy-MM-dd")} 第1引数の条件が true のときは第2引数を属性の値として出力し、第1引数の条件が false のときは属性自体を出力しません。 条件によって disabled や checked などの属性の出力する・しないを制御したい場合に使用します。 出力する・しないの制御はカスタムタグで行うので、t:input/t:select/t:textarea と組み合わせて使用してください。 ifrender org.seasar.cubby.tags.CubbyFunctions java.lang.Object ifrender ( java.lang.Boolean, java.lang.Object )