Не выводятся товары из БД MySQL через jsp страницу
При помощи модели выгружаю их из БД.
public class ProductDB extends ConnectingDB {
public static ArrayList<Product> select() {
ArrayList<Product> products = new ArrayList<>();
String sql = "SELECT * FROM PRODUCTS";
Statement statement = null;
try {
statement = getDbConnection().createStatement();
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
int id = resultSet.getInt("idproducts");//каждую строчку проверял через консоль
String name = resultSet.getString("name");//в ArrayList все записывается из БД
int price = resultSet.getInt("price");
String image = resultSet.getString("image");
Product product = new Product(id, name, price, image);
products.add(product);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return products;
}
}
Вот сервлет, обрабатывающий это дело
public class Welcome extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ArrayList<Product> products = ProductDB.select();
req.setAttribute("products", products);
getServletContext().getRequestDispatcher("/views/welcome.jsp").forward(req, resp);
}
}
И наконец jsp файл
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Welcome</title>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet"
id="bootstrap-css">
</head>
<body>
<div id="carousel-example" class="carousel slide hidden-xs" data-ride="carousel">
<div class="carousel-inner">
<div class="item active">
<div class="row">
<!-- Card -->
<c:forEach var="product" items="${products}">
<div class="col-sm-3">
<div class="col-item">
<div class="photo">
<img src="/images/${product.image}" class="img-responsive" alt="a"/>
</div>
<div class="info">
<div class="row">
<div class="price col-md-6">
<h5>${product.name}</h5>
<h5 class="price-text-color">${product.price}</h5>
</div>
<div class="rating hidden-sm col-md-6">
<i class="price-text-color fa fa-star"></i><i class="price-text-color fa fa-star"></i>
<i class="price-text-color fa fa-star"></i><i class="price-text-color fa fa-star"></i>
<i class="fa fa-star"></i>
</div>
</div>
<div class="separator clear-left">
<p class="btn-add"><i class="fa fa-shopping-cart"></i>
<button data-id="${product.id}" class="btn btn-info btn-sm">Add to cart</button></p>
</div>
<div class="clearfix">
</div>
</div>
</div>
</div>
<!-- End Card -->
</c:forEach>
Во всех примерах интернета этот foreach работает, а у меня почему то нет.