3

私の問題には数え切れないほどの例がありますが、私はそれらをたくさん経験し、私の間違いがどこにあるのか理解できません。

ArrayList(TestSzenario)を繰り返し処理しています。TestSzenarioクラスには、適切なゲッターとセッターを持つnameという文字列変数が含まれています。

これが私のコードです:

<td><select name="selectSzenario" id="selectSzenario" size="1">
                <c:forEach items="<%=testszenario.getSzenariosForSummary() %>" var="szenario"> 
                    <option>${szenario.name}</option>
                </c:forEach></select></td></tr>

私の問題は、変数が機能していないことです。選択ボックスのすべてのオプションに対して、常に${szenario.name}を取得します。JSTL-taglibを適切に宣言しましたが、サイトには複数のオプションがあるため、反復が機能していることがわかります。また、HTMLソースコードを調べたところ、foreachが解決されました。

HTML出力:

        <tr><td>Szenario:</td>
        <td><select name="selectSzenario" id="selectSzenario" size="1">

                    <option>${szenario.name}</option>

                    <option>${szenario.name}</option>
                </select></td></tr>

回答1の編集:ありがとう、しかし私は前にそれを試しました:

ArrayList<TestSzenario> szenarioList = testszenario.getSzenariosForSummary();
request.setAttribute("aList", szenarioList);
request.setAttribute("ts", testszenario);

<c:forEach items="${aList}" var="szenario">
<option>${szenario.name}</option>
</c:forEach></select></td></tr>

<c:forEach items="${ts.szenariosForSummary}" var="szenario">
<option>${szenario.name}</option>
</c:forEach></select></td></tr>

ただし、どちらの場合も、リストを反復処理することすらなく、オプションは1つだけになります(リストには2つの要素が含まれます)。

4

1 に答える 1