我知道我的问题有无数的例子,但我经历了很多,无法弄清楚我的错误在哪里。
我正在迭代一个 ArrayList(TestSzenario)。TestSzenario 类包含一个名为 name 的字符串变量,带有适当的 getter 和 setter。
这是我的代码:
<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 个元素)。