「c:if」を使用してセレクトボックスの比較処理の方法

実現したいこと

JSTLを使用したセレクトボックスより、「c:if」を使用して
初期のチェック(selected)をつける処理を考えています。

前提

現在、2つの項目値を比較して一致すればセレクトボックスに表示されている値を
selectしてくれる機能を考えています。
調べてみるとJavaScript使用せずに、「c:if」を使用すれば上記の機能を実現できるみたいなのですが
うまくselectしてくれません。

どなたか詳しいやり方を教えてください。

下記のコードから、「${IPMList.getM_item_pattern_name()}」にはセレクトボックスに表示
させるすべての値が入っています。

ここから「${DCDList.getT_item_pattern_name()}」には、「${IPMList.getM_item_pattern_name()}」の値がランダムに
入っています。
この二つの値を比較させて一致した値にselectしたいと考えています。

【イメージ】
イメージ説明

該当のソースコード

JSP

1 <c:forEach var="DCDList" items="${DCDList}" varStatus="s"> 2 <tr> 3 <td class="date"><input type="text" size="1" class="inpval2" name="itemorder" id="text1" value="${DCDList.getT_item_order()}" readonly style="background-color:transparent; border: none;"></td> 4 <td class="date"><input type="text" id="" class="inpval2" value="${DCDList.getT_input()}" readonly style="background-color:transparent; border: none;"></td> 5 <td class="date"><input type="text" id="" class="inpval2" value="${DCDList.getT_input_date()}" readonly style="background-color:transparent; border: none;"></td> 6 <td class="date"> 7** <select name="itemPatern"> 8 <c:forEach var="IPMList" items="${IPMList}" varStatus="s"> 9 <option value="${IPMList.getM_item_pattern_name()}"> 10 <c:out value="${IPMList.getM_item_pattern_name()}"/> 11 <c:if test="${IPMList.getM_item_pattern_name() == DCDList.getT_item_pattern_name()}">selected</c:if> 12 </option> 13 </c:forEach> 14 </select>** 15 </td> 16 <td class="date"><input type="text" id="" class="inpval2 " name="output" value="${DCDList.getT_output()}" readonly style="background-color:transparent; border: none; width:200px;"></td> 17 <td class="date"><input type="text" id="" class="inpval" name="outputdata" value="${DCDList.getT_output_date()}" readonly style="background-color:transparent; border: none; width:200px;"></td> 18 <td class="date"><input type="text" id="" class="inpval2" value="${DCDList.getT_error_content()}" readonly style="background-color:transparent; border: none;"></td> 19 <td style="background-color: transparent; border: none; width: 40px;"></td> 20 <td style="background-color: transparent; border: none; width: 40px;"></td> 21 </tr> 22 </c:forEach>

試したこと

コードに記載している「c:if」で試してみたのですが、うまく動作させることができませんでした。
そもそも書き方間違っているのでしょうか?

コメントを投稿

0 コメント