高度なカスタマイズ > Info*Engine ユーザーガイド > Info*Engine カスタムタグリファレンス > Info*Engine タグ > supplied ライブラリのタグ (JSTL)
  
supplied ライブラリのタグ (JSTL)
このタグライブラリは、基本的な JSTL に類似した機能を Info*Engine タスクに提供します。これらの機能には、変数の設定、リストの作業版数、条件付きロジックの利用などが含まれます。
これらのタグは、/com/infoengine/tlds/iejstl.tld タグライブラリに含まれています。これらのタグを使用するには、以下のような taglib ディレクティブをタスクで指定する必要があります。
<%@ taglib uri="/com/infoengine/tlds/iejstl.tld"
prefix="c" %>
これらのタグの構文は、taglib ディレクティブに c プリフィックスが指定されていることを前提としています。別のプリフィックスを指定する場合は、タグ構文内で c の代わりにユーザー指定のプリフィックスを使用してください。
choose
このタグは、評価結果が false である場合の代替処理を備えた条件付き評価 (if/else ロジック) を可能にします。入れ子で when/otherwise 評価を埋め込む必要があります。
構文
<c:choose>
<c:when test="CONDITION">
<!-- processed when CONDITION evaluates to true -->
</c:when>
<c:otherwise>
<!-- processed when CONDITION evaluates to false -->
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${group == null || group.elementCount==0}">
<!-- do when group named "group" is empty -->
</c:when>
<c:otherwise>
<!-- do when group contains elements -->
</c:otherwise>
</c:choose>
forEach
このタグは、オブジェクトの iterable、group、または array での作業版数をサポートします。
構文
<c:forEach var="VARIABLE" var="LIST">
<!-- invoked once for each element in LIST -->
</c:forEach>
属性の説明
必須属性: listvar
list
作業版数を適用するリスト。これは作業版数適用可能、グループ、または配列に評価される必要があります。
この属性は必須であり、これは定義式でもあります。
var
作業版数の適用中に個々のリスト要素に使用する変数名。値が var であれば、定義されている (タスク内の範囲内で一意である必要のある) 暗黙の変数の名前が指定されます。さらに、タスクレットコンテキスト変数がこの名前で作業版数ごとに設定されます。これにより、ほかの定義式内でこれを再利用できます。作業版数が適用されるリストが Info*Engine グループである場合、コンテキスト変数は Info*Engine 要素です。
変数を設定するだけではなく、var 属性値で指定されている要素グループが VDB に配置されます (Info*Engine の core タグライブラリにより提供される forEach タグの機能と類似)。
${myGroup[0]att[*]} などの定義式を使用して、複数の値をとる属性に作業版数を適用することもできます。この属性は必須です。
<c:forEach var="one" list="${output}">
<log:info message="attribute A has a value of ${one[0]A[0]}" />
</c:forEach>
if
if タグは、そのボディの条件付き評価を可能にします。
構文
<c:if test="CONDITIONAL">
<!-- invoked if CONDITIONAL evaluates to true -->
</c:if>
属性の説明
必須属性: test
test
評価される条件付きステートメントを含んでいます。test 属性は、==、!=、<、>、<=、および >= 演算子をサポートしています。数値演算子を使用するときは、比較を行うため、オペランドが数値データタイプである必要があります。オペランドが異なるデータタイプである場合は、可能であれば、強制的に 1 つのオペランドをもう 1 つのオペランドに合わせて、比較する試みが行われます。オペランドの 1 つが定数である場合は、強制的に変数を定数にする試みが行われます。任意の複雑さの条件付き定義式を指定できます。評価する定義式の各部分は ( ) でグループ化する必要があります。これにより、定義式を || または && で結合できます。
この属性は必須であり、これは定義式でもあります。
* 
&& は '&amp;&amp;' とエンコードする必要があります。
<c:if test="${@FORM[]bool[]==true}">
<!-- conditional code -->
</c:if>
<c:if test="${this==that || (this!=that&amp;&amp;a<b)}">
<!-- conditional code -->
</c:if>
otherwise
このタグは、choose および when タグと関連しています。これは choose タグの子である必要があり、これには兄弟 when タグが必要です。when タグが false に評価される場合、otherwise タグのコンテンツが呼び出され、実行されます (if/else ロジックの else を表す)。
構文
<c:choose>
<c:when test="CONDITION">
<!-- processed when CONDITION evaluates to true -->
</c:when>
<c:otherwise>
<!-- processed when CONDITION evaluates to false -->
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${group == null || group.elementCount==0}">
<!-- do when group named "group" is empty -->
</c:when>
<c:otherwise>
<!-- do when group contains elements -->
</c:otherwise>
</c:choose>
return
タスク呼び出しを終了します。
構文
<c:return/>
<c:if test="${input == null}">
<c:return />
</c:if>
設定
set タグは、タスクレットコンテキストまたはリクエストコンテキストのどちらかで変数を設定します。
構文
<set var="VARIABLE" value="VALUE"/>
属性の説明
必須属性: varvalue
var
設定する変数。
この属性は必須です。
value
設定する値。value 属性は、同じタイプの 2 つのオペランドを使用した数学演算を表す複雑な定義式をサポートしています。サポートされている演算子は +、-、*、/、%、&、および | です。タスク内では、& 演算子は '&amp;' とエスケープする必要があります。
この属性は必須であり、これを定義式として使用することもできます。
* 
1 つのオペランドが定数で、もう 1 つのオペランドが変数である場合は、必要かつ可能であれば、強制的に変数が定数のデータタイプになります。数学演算で使用できるデータタイプは intfloat です。
requestScope
変数がタスク範囲かリクエスト範囲のどちらにある必要があるかを指定するブール。デフォルトは false に設定されています。
<c:set var="onePlusOne" value="${one+1}"/>
when
if タグと似ていますが、違いは choose 親タグ内であることです (if/else ロジックの if を表します)。Info*Engine タスクで JSTL がサポートされるようにします。
構文
<c:choose>
<c:when test="CONDITION">
<!-- processed when CONDITION evaluates to true -->
</c:when>
<c:otherwise>
<!-- processed when CONDITION evaluates to false -->
</c:otherwise>
</c:choose>
属性の説明
必須属性: test
test
評価される条件付きステートメントを含んでいます。test 属性は、==、!=、<、>、<=、および >= 演算子をサポートしています。数値演算子を使用するときは、比較を行うため、オペランドが数値データタイプである必要があります。オペランドが異なるデータタイプである場合は、可能であれば、強制的に 1 つのオペランドをもう 1 つのオペランドに合わせて、比較する試みが行われます。オペランドの 1 つが定数である場合は、強制的に変数を定数にする試みが行われます。任意の複雑さの条件付き定義式を指定できます。評価する定義式の各部分は ( ) でグループ化する必要があります。これにより、定義式を || または && で結合できます。
* 
&& は '&amp;&amp;' とエンコードする必要があります。
この属性は必須であり、これは定義式でもあります。
<c:choose>
<c:when test="${group == null || group.elementCount==0}">
<!-- do when group named "group" is empty -->
</c:when>
<c:otherwise>
<!-- do when group contains elements -->
</c:otherwise>
</c:choose>