CubbyではJSP2.0のFunctionが用意されています。 以下のタグライブラリ宣言を行うことでカスタムFunctionが使用できます。
<%@ taglib uri="http://www.seasar.org/cubby/functions" prefix="f" %>
HTML をエスケープします。JSTL の out タグの代わりに使用します。 EL 式で出力された文字列はエスケープされないため、エスケープを行いたい場合はこの function を使用します。
使用例
${f:out(user.name)}さんこんにちは
Date 型のオブジェクトをフォーマットして出力します。JSTL の dateFormat タグの代わりに使用します。
使用例
${f:dateFormat(todo.limitDate, "yyyy-MM-dd")}
指定したカンマ区切りの文字列をインデックス値でサイクルして出力します。 主に行毎に色分けする場合にCSSのクラス名を出力する場合に使用します。 下記の例では、status.indexを2で割って余りが0の場合「odd」、1の場合「even」が出力されます。
使用例
<c:forEach var="todo" items="${action.todoList}" varStatus="status"> <tr class="${f:odd(status.index, 'odd,even')}"> ... </tr> </c:forEach>
配列やコレクションに指定したオブジェクトが含まれるかどうかを判定します。
使用例
<c:if test="${f:contains(idlist, '1001')}"> ... </c:if>
Mapに指定したキーが含まれるかどうかを判定します。
使用例
<c:if test="${f:containsKey(idmap, '1001')}"> ... </c:if>
Mapに指定した値が含まれるかどうかを判定します。
使用例
<c:if test="${f:containsValue(idmap, '値1')}"> ... </c:if>