型号(行):
public class Row { private String name; // Add/generate constructor(s), getters and setters.}道:
public List<Row> list() throws SQLException { Connection connection = null; Statement statement = null; ResultSet resultSet = null; List<Row> rows = new ArrayList<Row>(); try { connection = database.getConnection(); statement = connection.createStatement(); resultSet = statement.executeQuery(SQL_LIST); while (resultSet.next()) { Row row = new Row(); row.setName(resultSet.getString("name")); // ... rows.add(row); } } finally { if (resultSet != null) try { resultSet.close(); } catch (SQLException logOrIgnore) {} if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {} if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {} } return rows;}控制器(Servlet):
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { List<Row> rows = someDAO.list(); request.setAttribute("rows", rows); } catch (SQLException e) { request.setAttribute("error", "Retrieving rows failed."); e.printStackTrace(); } request.getRequestDispatcher("page.jsp").forward(request, response);}查看(page.jsp):
<c:forEach items="${rows}" var="row"> <c:out value="${row.name}" /> ...</c:forEach><c:if test="${not empty error}">Error: ${error}</c:if>


