Отображение информации из базы данных в формате jspx (с использованием jdbc) - PullRequest
0 голосов
/ 05 декабря 2011

Я создал бин для использования, который возвращает хэш-карту, содержащую предметы

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>

Когда страница загружается, я получаю заголовки таблицы, однако внутри данных нет. Я тоже не получаю исключения. Кто-нибудь может указать, где я иду не так?

...