Заполнение выпадающего списка на странице JSP - PullRequest
0 голосов
/ 23 декабря 2010

Я работаю в NetBeans, у меня есть страница JSP, в которой есть раскрывающийся список, в котором необходимо получить параметры из базы данных MySQL. Я не могу понять, как получить базу данных MySQL для заполнения выпадающего списка.

<form action="student/studentQueryResponse.jsp">
    <strong>Select a student:</strong>
    <select name="studentID">
        <c:forEach var="row" items="${student.rowsByIndex}">
            <c:forEach var="column" items="${row}">
                <option <c:out value="${column}"/>
                </option>
            </c:forEach>
        </c:forEach>
    </select>
    <input type="submit" value="submit" name="submit" />
</form>

Ответы [ 2 ]

1 голос
/ 24 декабря 2010

Откуда вы вставили код?Он использует свойство 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.Я предположил, что вам понадобится идентификатор студента и что это первый столбец вашего запроса.

0 голосов
/ 23 декабря 2010

Да, проблемы BalusC верны, если вы не используете JSF, это не проект JSF. Если вы сделаете это JSF-проектом, тогда selectOneItem selectOneMenu может сделать все за вас. Что касается возможности подключения к базе данных, то в идеальном случае чистый способ - создать соединение в бэк-компоненте, используя источники данных, либо просто jdbc, либо другие методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...