我有一个JSP应用程序,我正在尝试使用JSP填充客户的结婚蛋糕订单表,每行有一个订单。到目前为止,我接触到的方法是将MySQL表中的每个订单设置为Order对象,然后将所有订单对象添加到要在JSP中引用的HashMap。如何使用JSP,Java Beans和Servlets填充JSP表格
这是我的问题。到目前为止,Order对象是使用数据库中的数据创建的,并放置在HashMap中。我唯一的问题是我对我应该如何访问JSP中的数据感到困惑。我在散列表上使用c:forEach循环,并且不确定如何访问HashMap中Order对象的属性(如firstName或dueDate字段)。我可能选择了一个完全错误的方法,因为我对JSP比较陌生。这是我的代码。
,用于设置的HashMap与填充Order对象的类:
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>
任何帮助真的很感激。如果我错误地处理了这个问题,那么建议最好的方法是做到这一点。
为什么不把你的订单列表?你并不需要地图的关键。 – rickz