当前位置:  开发笔记 > 编程语言 > 正文

如何在我的jsp中提供Java ResultSet?

如何解决《如何在我的jsp中提供JavaResultSet?》经验,为你挑选了1个好方法。

我想换一个sql:query来查找一些用几个参数构建复杂查询的Java代码.当前的sql是一个简单的选择.



如何获取我的Java ResultSet(即rs = stmt.executeQuery(sql);)并在我的JSP中提供结果,以便我可以使用这个教科书JSP?

为了更清楚,我想删除上面的查询并用Java替换它.

<%
  ResultSet rs = stmt.executeQuery(sql); // Messy code will be in some Controller
%>

  

我是否在Java部分设置了session/page变量,或者是否有一些我可以用来访问变量的EL技巧?



1> BalusC..:

型号(行):

public class Row { 
    private String name;
    // Add/generate constructor(s), getters and setters.
}

DAO:

public List list() throws SQLException {
    Connection connection = null;
    Statement statement = null;
    ResultSet resultSet = null;
    List rows = new ArrayList();

    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 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):


    
    ...

Error: ${error}

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有