カスタムファンクション

CubbyではJSP2.0のFunctionが用意されています。 以下のタグライブラリ宣言を行うことでカスタムFunctionが使用できます。

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

out

HTML をエスケープします。JSTL の out タグの代わりに使用します。 EL 式で出力された文字列はエスケープされないため、エスケープを行いたい場合はこの function を使用します。

使用例

${f:out(user.name)}さんこんにちは

dateFormat

Date 型のオブジェクトをフォーマットして出力します。JSTL の dateFormat タグの代わりに使用します。

使用例

${f:dateFormat(todo.limitDate, "yyyy-MM-dd")}

odd

指定したカンマ区切りの文字列をインデックス値でサイクルして出力します。 主に行毎に色分けする場合に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>

contains

配列やコレクションに指定したオブジェクトが含まれるかどうかを判定します。

使用例

<c:if test="${f:contains(idlist, '1001')}">
  ...
</c:if>

containsKey

Mapに指定したキーが含まれるかどうかを判定します。

使用例

<c:if test="${f:containsKey(idmap, '1001')}">
  ...
</c:if>

containsValue

Mapに指定した値が含まれるかどうかを判定します。

使用例

<c:if test="${f:containsValue(idmap, '値1')}">
  ...
</c:if>