Я создал бин для использования, который возвращает хэш-карту, содержащую предметы
public class ModListBean {
String connectionURL = "jdbc:mysql://localhost/cs_subjects";
public ModListBean() {
try {
// Load the database driver
Class.forName("com.mysql.jdbc.Driver");
// Get a Connection to the database
connection = DriverManager.getConnection(connectionURL, "root", "");
}catch(Exception e){
System.out.println("Exception is ;"+e + ": message is " + e.getMessage());
}
}
public Map getSubjects() {
Map subjects = new HashMap<String, Subject>();
String query = "SELECT * FROM cs_subject";
try {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String dbId = rs.getString("id");
String dbName = rs.getString("name");
int dbCredits = rs.getInt("credits");
Subject x = new Subject (dbId, dbName, dbCredits);
subjects.put(rs.getString(1), x);
} //end while
}catch(SQLException e) {
System.out.println("Exception is ;"+e + ": message is " + e.getMessage());
return null;
}
return modules;
}
Затем я пытаюсь отобразить хэш-карту в таблице на странице jspx
<jsp:useBean class="model.ModListBean" id="modBean" scope="page"/>
<table border="1">
<tr>
<th>Subject ID</th><th>Name</th><th>Mark</th>
</tr>
<c:forEach var="entry" items="${modBean.subjects}">
<tr>
<td><c:out value="${entry.key}"/></td>
<td><c:out value="${entry.value.name}"/></td>
<td><c:out value="${entry.value.credits}"/></td>
</tr>
</c:forEach>
</table>
Когда страница загружается, я получаю заголовки таблицы, однако внутри данных нет. Я тоже не получаю исключения. Кто-нибудь может указать, где я иду не так?