当前位置: 首页 > 面试题库 >

如何在jsp中使用Java ResultSet?

高弘光
2023-03-14
问题内容

我想将sql:query换成一些Java代码,该代码用几个参数构建一个复杂的查询。当前的sql是一个简单的选择。

<sql:查询
   var =“ result”
   dataSource =“ $ {dSource}”
   sql =“ select * from TABLE”>
</ sql:query>

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

更清楚地说,我想删除上面的查询并将其替换为Java。

<%
  ResultSet rs = stmt.executeQuery(sql); //凌乱的代码将在某些Controller中
%>



<c:forEach var =“ row” items =“ $ {result.rows}”>
  <c:out value =“ $ {row.name}” />
</ c:forEach>

我应该在Java部分中设置session / page变量,还是可以使用一些EL技巧来访问该变量?


问题答案:

型号(行):

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>


 类似资料:
  • 本文向大家介绍如何在JSP中使用 Action?,包括了如何在JSP中使用 Action?的使用技巧和注意事项,需要的朋友参考一下 在前进的行动终止当前页面的动作和将请求转发到其他资源,如静态页面,另一个JSP页面或Java Servlet中。 以下是前进动作的语法- 下表列出了与转发操作相关的必需属性- 序号 属性和说明 1 页面 应该由另一个资源的相对URL组成,例如静态页面,另一个JSP页面

  • 本文向大家介绍如何在JSP中使用 动作?,包括了如何在JSP中使用 动作?的使用技巧和注意事项,需要的朋友参考一下 该插件的作用是用来Java组件插入到一个JSP页面。它确定浏览器的类型,并根据需要插入<object>或<embed>标记。 如果所需的插件不存在,它将下载该插件,然后执行Java组件。Java组件可以是Applet或JavaBean。 插件操作具有几个属性,这些属性与用于格式化Ja

  • 本文向大家介绍如何在JSP中使用 动作?,包括了如何在JSP中使用 动作?的使用技巧和注意事项,需要的朋友参考一下 的getProperty动作用于检索一个给定的属性,并将其转换的值的字符串,并最终将其插入到输出中。 getProperty操作只有两个属性,这两个属性都是必需的。getProperty操作的语法如下: 下表列出了与getProperty操作关联的必需属性- 序号 属性和说明 1个

  • 本文向大家介绍如何在JSP中使用 动作?,包括了如何在JSP中使用 动作?的使用技巧和注意事项,需要的朋友参考一下 该useBean的动作是相当多才多艺。它首先使用id和scope变量搜索现有对象。如果找不到对象,则尝试创建指定的对象。 加载bean的最简单方法如下- 加载Bean类后,可以使用jsp:setProperty和jsp:getProperty操作来修改和检索Bean属性。 下表列出了

  • 本文向大家介绍如何在JSP中使用 动作?,包括了如何在JSP中使用 动作?的使用技巧和注意事项,需要的朋友参考一下 setProperty操作设置一个bean的属性。在执行此操作之前,必须预先定义Bean。有两种使用setProperty操作的基本方法- 您可以在jsp:useBean元素之后但在jsp:useBean元素之外使用jsp:setProperty,如下所示- 在这种情况下,无论是否实

  • 我有一个关于在JSP中使用三进制运算符的查询。下面提到的代码使用了if else语句,该语句运行良好。 请帮助我如何使用这个三值运算符来满足这个要求。 提前谢了。