Откуда вы вставили код?Он использует свойство linesByIndex , поэтому он явно предназначен для использования с тегом jstl (и написано кем-то, кто его знал).С другой стороны, использование двух вложенных предложений forEach не имеет смысла в этом контексте: в конечном итоге вы получите отдельный параметр для каждого из данных учащихся (имя, фамилия и т. Д.) Вместо одного параметра для отдельного элемента.ученик.Выглядит так, как будто исходный код был для какой-то сетки данных и был изменен без малейшего понимания.
При всем моем уважении, я разделяю мнение, что вы не готовы написать приложение- и вы не будете учиться многому, пытаясь, так как скоро вы придете к более сложным темам.Если вы вынуждены продолжить приложение, попробуйте сбросить JSF и сконцентрироваться на JSP / JSTL, я полагаю, что у него меньше предостережений для новичка, и вам будет легче изучать основы веб-приложений.
Тем не менее, ответ, который вы ищете:
<sql:setDataSource dataSource="jdbc/db" />
<sql:query var="students">
select * from students
</sql:query>
<form action="student/studentQueryResponse.jsp">
<strong>Select a student:</strong>
<select name="studentID">
<c:forEach var="row" items="${students.rowsByIndex}">
<option id="<c:out value="${row[0]}"/>"><c:out value="${row[1]}"/></option>
</c:forEach>
</select>
<input type="submit" value="submit" name="submit" />
</form>
Вам нужно будет заменить запрос sql своим собственным, и вам придется зарегистрировать источник данных jdbc / db вваш сервер приложений и в файле web.xml .Конечно, вам также понадобится драйвер MySQL.Я предположил, что вам понадобится идентификатор студента и что это первый столбец вашего запроса.