можно ли вернуть переменную ResultSet в тег JSTL foreach? Я получаю ошибку с нулевой точкой, и по неправильной причине он говорит, что класс db2.MyServ не существует, хотя он здесь. кто-нибудь знает, что я делаю неправильно и как перебрать мой ResultSet rs на jstl?
Класс MyServ2 (импорт и т. д. опущен)
package db2;
public class MyServ2 extends HttpServlet {
private static final long serialVersionUID = 1L;
private DBClass db;
private ResultSet rs;
public MyServ2() {
super();
db = new DBClass();
db.dbConnect("jdbc:oracle:thin:@elanweb:1510:xxxxx", "xxxxx", "xxx");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
rs = db.getResultSet(request.getParameter("query"));
try {
while(rs.next()){
System.out.println(rs.getString(1).toString());
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public ResultSet getRs()
{
return rs;
}
}
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="db2.MyServ2" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
</head>
<body>
successful login
<jsp:useBean id="myserv2" class="db2.MyServ2"/>
<c:if test="${myserv2.rs.Next()}">
<c:forEach var="person" items="${myserv2.rs}">
<c:out value="${myserv2.rs.string(1).toString()}"></c:out>
</c:forEach>
</c:if>
</body>
</html>
Я создал bean-компонент и сохранил в нем строки. Когда я вызываю их из моего класса MyServ2 для отладки, они работают нормально, но когда я вызываю их со своей веб-страницы как jstl, они возвращают null, как если бы bean-компонент не был заполнен. Все сбрасывается, как только я перенаправляю обратно на веб-страницу?
<jsp:useBean id="mybean" class="beans.UserBean"></jsp:useBean>
<c:out value="${mybean.name}"></c:out><br></br>
добавлено в класс MyServ следующее
rs = db.getResultSet(request.getParameter("query"));
try {
while(rs.next()){
mybean.SetName(rs.getString(1).toString());
mybean.Setsurname( rs.getString(2).toString());
}
} catch (SQLException e) {
e.printStackTrace();
}