条件分岐

基本的な事ですが、JSTLによる条件分岐(if,choose)は以下のようなものがあります。

  • 条件判定(c:if)

if文は一番利用します。Trueの場合のみHTMLを生成する等に利用します。私はいつも忘れてしまい、ついつい探してしまうのですが、JSTLには、ELSE(否定文)が存在しませんので、EL式にて判定しています。

<c:if test="${test1 == '100' and test2 != '200'}">
test1が100でかつ、test2が200以外が対象
</c:if>

<c:if test="${test1 >= 100 or test2 < 200}">
test1が100以上でかつ、test2が200未満が対象
</c:if>

<c:if test="${empty test1}">
test1が空白またはnullが対象
</c:if>

<c:if test="${!empty test1}">
test1が空白またはnullでない場合
</c:if>
  • 複数条件判定(c:choose)

対象の条件判定を複数指定したい場合に利用しています。区分やフラグの分岐に利用していますが、実用的には、私はカスタマイズの影響を考慮して、IF文を利用することが多いです。

<c:choose>
<c:when test="${test1 == '1'}">
test1が1
</c:when>
<c:when test="${test1 == '2'}">
test1が2
</c:when>
<c:otherwise">
上記以外
</c:otherwise>
</c:choose>