Функция ОБНОВЛЕНИЯ в Java Web не заполняет текстовое поле при переходе на страницу обновления - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть домашняя страница, которая перенаправляет на страницу обновления, когда пользователь щелкает, чтобы обновить элемент. Я пытаюсь передать значение идентификатора на страницу обновления в зависимости от элемента, на который нажал пользователь, однако я не могу заполнить текстовые поля. Не могли бы вы помочь мне? Интересно, где моя логика не работает?

Обновление SQL:

public static void insertProduct(Product product)
{ 
    Connection connection = Database.getConnection();

    String sql = "INSERT INTO product (name, type, price) VALUES (?, ?, ?)";

    try { 
        PreparedStatement statement = connection.prepareStatement(sql);

        statement.setString(1, product.getName());
        statement.setString(2, product.getType());
        statement.setDouble(3, product.getPrice());

        statement.execute();

    } catch (SQLException e) {
        e.printStackTrace();
    } 
}

Контроллер:

private ProductService productService = new ProductService();

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
//  request.setAttribute("products", productService.getProducts());
    request.getRequestDispatcher("/WEB-INF/views/home.jsp").forward(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String name = request.getParameter("name");
    double price = Double.parseDouble(request.getParameter("price"));

// Product newProduct = new Product (название, цена);

    request.setAttribute("products", productService.getProducts());
    request.getRequestDispatcher("/WEB-INF/views/home.jsp").forward(request, response); 
}

HTML Домашняя страница:

        <tr>
            <th>Name</th>
            <th>Price</th>
            <th>Type</th>               
        </tr>
        <c:forEach var="product" items="${products}">
            <tr>
                <td><c:out value="${product.name}" /></td>
                <td><c:out value="${product.priceAsCurrency}" /></td>
                <td><c:out value="${product.type}" /></td>
                <td>
                    <a href="/updateItem?id=<c:out value='${product.id}' />">Edit</a>
                    <a href="/delete?id=<c:out value='${product.id}' />">Delete</a>                     
                </td>
            </tr>
         <input id="productId" name="productId" type="hidden" value="${product.id}">
         </c:forEach>

Страница обновления:

 <form action="updateItem" method="post">
    <table border="1" cellpadding="5">
         <input type="hidden" name="id" value="<c:out value='${product.id}' 
 />" />       
        <tr>
            <th>Name: </th>
            <td>
                <input type="text" name="name" size="45"
                        value="${product.name}"/>"
                    />
            </td>
        </tr>
        <tr>
            <th>Type: </th>
            <td>
                <input type="text" name="type" size="45"
                        value="${product.type}"/>"
                    />
            </td>
        </tr>
        <tr>
            <th>Price: </th>
            <td>
                <input type="text" name="type" size="45"
                        value="${product.price}"/>"
                    />
            </td>
        </tr>
    </table>
    <button type="submit" value="submit">Update</button>
    </form>

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

Заранее спасибо.

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