我想将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语句,该语句运行良好。 请帮助我如何使用这个三值运算符来满足这个要求。 提前谢了。