【发布时间】:2017-01-25 03:59:31
【问题描述】:
我正在尝试使用 HashMap 的内容填充 JSP 表,但在第一次尝试在 JSP(firstName 属性)中引用它时,我不断收到 PropertyNotFoundExceptions。我尝试使用 var['key'] 和 var.value.key 在 EL 中引用它的方式,每次我得到一个 PropertyNotFoundException。这是我正在使用的代码:
JSP:
<c:forEach var="orders" items="${ orderList }">
<tr>
<td class="name">
<a href="">${ orders.firstName }</a>
</td>
<td>${ orders.date }</td>
<td>${ orders.product }</td>
<td>${ orders.comments }</td>
</tr>
</c:forEach>
设置属性的Servlet:
FormManager fm = new FormManager();
HashMap hm = fm.getOrder();
request.setAttribute("orderList", hm);
来自 FormManager 类:
public HashMap getOrder() {
dbm = new DatabaseManager();
Statement stmt = null;
String sql = "SELECT * FROM orders";
HashMap<String, String> itemMap = new HashMap<String, String>();
String[] keys = { "firstName", "lastName", "phone", "email" , "date", "product", "comments", "id" };
dbm.setUrl("jdbc:mysql://localhost:3306/pattycakes");
dbm.connect();
try {
stmt = dbm.getConn().createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int columns = rsmd.getColumnCount();
for (int i = 0; i < columns; i++) {
rs.beforeFirst();
rs.next();
itemMap.put(keys[i], rs.getString(i + 1));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
dbm.disconnect(stmt, dbm.getConn());
}
return itemMap;
}
到目前为止,该代码可能存在一些问题,因为我仍在为家庭成员编写此代码。我所关心的是如何克服异常。谢谢!
【问题讨论】: