2016-10-20 7 views
0

У меня есть форма, в которой есть раскрывающийся список, и я использую цикл foreach, чтобы заполнить его значениями, возвращаемыми из SQL-запроса. Он должен возвращать индекс цикла через свойство varStatus. Вот код:JSP опциональный тег в foreach только возвращает первое значение

<form action="response.jsp"> 
    <strong>Select a Department:</strong> 
    <select name="depts"> 
     <c:forEach var="dept" items="${departments.departments}" varStatus="loop"> 
      <option value="${loop.index}">${dept}</option> 
     </c:forEach> 
    <input type="submit" value="submit" name="submit" /> 
</form> 

выпадающий список заселяется правильно, однако при нажатии подать, только первый индекс возвращается, то есть независимо от того, какой вариант выбран, только первое значение возвращается.

Код, который принимает возвращаемое значение является

<jsp:setProperty name="department" property="index" value="${param.loop.index}"/> 

Метод сеттер для индекса также устанавливает значения трех других переменных в классе, которые получены из индекса, если это делает никакой разницы.

Не уверен, что я пропустил что-то очевидное, но любая помощь будет оценена по достоинству.

ответ

0

В теге <select> назначенный параметр имени - это имя переменной, которая передается при отправке формы. Это означает, что в поле значения в <jsp:setProperty> тега, это значение имени должно быть использовано в качестве значения параметра, т.е.

<jsp:setProperty name="department" property="index" value="${param:depts}"/> 
0

если вы используете .index он начнет отсчет с 0.

если вы используете .count он начнет отсчет с 1.

Я не вижу никакой проблемы в коде относительно на отображение вывода. каков вывод, который отображается в любом случае?

+0

«.index» является правильным использовать в качестве значения используются в качестве индекса в массив содержащие имена разных отделов. Установленное свойство используется для получения параметров, которые затем используются в sql-запросах, чтобы найти всех сотрудников в этом отделе. – Musicgun47