如何使用JSP,Java Bean和Servlet填充JSP表

时间:2016-09-17 00:51:17

标签: java jsp servlets

我有一个JSP应用程序,我正在尝试使用JSP来填充客户的婚礼蛋糕订单表,每行有一个订单。到目前为止我接近它的方法是将MySQL表中的每个顺序设置为Order对象,然后将所有顺序对象添加到要在JSP中引用的HashMap中。

这是我的问题。到目前为止,Order对象是使用数据库中的数据创建的,并放在HashMap中。我唯一的问题是我对如何访问JSP中的数据感到困惑。我在hashmap上使用c:forEach循环,并且不确定如何访问HashMap中Order对象的属性(例如firstName或dueDate字段)。我可能选择了一个完全错误的方法,因为我对JSP相对较新。这是我的代码。

使用已填充的Order对象设置HashMap的类:

public HashMap getOrders() {
    dbm = new DatabaseManager();
    Statement stmt = null;
    String sql = "SELECT * FROM orders";
    HashMap<Integer, Order> orderMap = new HashMap<Integer, Order>();

    dbm.setUrl("jdbc:mysql://localhost:3306/pattycakes");
    dbm.connect();
    try {
        stmt = dbm.getConn().createStatement();
        ResultSet rs = stmt.executeQuery(sql);

        rs.beforeFirst();
        int i = 0;
        while (rs.next()) {
            orderMap.put(i + 1,
                    new Order(rs.getString("first_name"), rs.getString("last_name"), rs.getString("phone"),
                            rs.getString("email"), rs.getString("due_date"), rs.getString("product_type"),
                            rs.getString("comments"), rs.getInt("id")));
            i++;
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        dbm.disconnect(stmt, dbm.getConn());
    }
    return orderMap;
}

将其设置为属性的Servlet:

FormManager fm = new FormManager();
HashMap hm = fm.getOrders();
request.setAttribute("orders", hm);

JSP尝试填充表:

        <c:forEach var="orders" items="${ orders }">
            <tr>
              <%-- How to get the data from the order objects???? --%>
                <td class="name">
                    <a href="">${ }</a>
                </td>
                <td>${ }</td>
                <td>${ }</td>
                <td>${ }</td>
            </tr>
        </c:forEach>

非常感谢任何帮助。如果我不正确地接近这个问题,建议最好的方法就是这样。

1 个答案:

答案 0 :(得分:1)

我们可以在jsp中迭代hashmap,如下<c:forEach var="country" items="${capitalList}"> Country: ${country.key} - Capital: ${country.value} </c:forEach>