получить выпадающий список из базы данных MySQL и вставить в базу данных в JSP - PullRequest
1 голос
/ 29 мая 2011

Эта штука действительно беспокоит меня. Как я могу получить свой выпадающий список из базы данных MySQL, а затем отправить его в другую таблицу в JSP. Я только знаю, как создать статический выпадающий с HTML и как я могу сделать его динамичным. Я имею в виду форму, которая связывается с сервлетом, а сервлет соединяется с базой данных и выбирает массив строк из таблицы базы данных, а затем отправляет ее в JSP для заполнения параметров, а при отправке параметра отправляет сервлет, который затем вставляет в базу данных. кто-то, пожалуйста, дайте мне пример кода, который может сделать это. В частности, мне нужен код JSP, используемый в теге, и код для отправки из сервлета. Я действительно проверил с Google, но нет четкого ответа. Надеюсь, я получу ответ здесь

1 Ответ

0 голосов
/ 29 мая 2011

У вас это почти правильно. Чтобы получить раскрывающиеся значения из базы данных, вы должны сначала вызвать сервлет, который выполняет задание предварительной обработки, а затем позволить сервлету отобразить JSP с раскрывающимся списком.

Поскольку обычный HTTP-запрос (нажатие на ссылку, закладку или ввод URL-адреса в адресной строке) по определению запускает GET-запрос, вы должны выполнить эту работу в методе doGet(). Вот пример, который получает выпадающие значения в виде List<Product>.

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<Product> products = productService.list();
    request.setAttribute("products", products); // It'll be available as ${products}.
    request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response);
}

В /WEB-INF/products.jsp вы можете отобразить его следующим образом:

<form action="order" method="post">
    <select name="productId">
        <c:forEach items="${products}" var="product">
            <option value="${product.id}">${product.name}</option>
        </c:forEach>
    </select>
    <input type="submit" value="Order" />
</form>

Сопоставьте этот сервлет с шаблоном URL-адреса /products и вызовите его с помощью http://example.com/context/products.. Он загрузит продукты из БД, сохранит их в области запроса, перенаправит в JSP, чтобы позволить ему представить его .

Когда вы отправляете форму, будет вызван метод doPost() сервлета, который сопоставлен с шаблоном URL /order. Когда вы отправляете HTML-форму, пара name=value каждого элемента ввода будет доступна в качестве параметра HTTP-запроса. Таким образом, вы можете получить идентификатор продукта следующим образом:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String productId = request.getParameter("productId");
    // ... do your job here to insert the data.

    request.getRequestDispatcher("/WEB-INF/someresult.jsp").forward(request, response);
}

Смотри также:

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