tenho o seguinte codigo:
<%
int tamanho = 0;
DisciplinaDao dDao = new DisciplinaDao();
ResultSet rs = dDao.getDisciplinas();
while (rs.next()) {
tamanho = tamanho + 1;
}
%>
logo a seguir tento usar o rs fazendo o seguinte:
<%
while (rs.next()) {
%>
<option value="<%=rs.getString("nome")%>"><%=rs.getString"nome")%>
</option>
<%
}
%>
ai ele nao escreve nada no value ... pq ?
Olá
Por que voce esta tentando percorrer o rs 2 vezes.Na segunda ele já esta no fim, dai o metodo next() retorna false.
A ideia é voce fazer um while só.
Use o método rs.first(); antes de executar o loop pela segunda vez.
Desse jeito o cursor volta para a primeira linha do ResultSet.
Espero ter ajudado !!!
o problema real é q como é necessário fazer uma conexao com o banco p/ q os dados sejam mostrados no JSP , logo ao entrar na página ja existe uma conexao e esta pelo meu entendimento nao pode ser fechada
conn.close
por se tratar de um SELECT, estou correto ? Daí toda vez que o usuario entra na pagina ele faz uma nova conexao e isso acaba resultando no seguinte erro:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
localhost:3456:bancodedados
[quote=pelegrini]Use o método rs.first(); antes de executar o loop pela segunda vez.
Desse jeito o cursor volta para a primeira linha do ResultSet.
Espero ter ajudado !!!
[/quote]
tá dando o seguinte erro agora:
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /cadastroDisciplina.jsp:91
88: <%
89: //rs = dDao.getDisciplinas();
90:
91: rs.first();
92: while (rs.next()) {
93: %>
94: <option value="<%=rs.getString("nome")%>"><%=rs.getString("nome")%>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
javax.servlet.ServletException: Operação inválida para encaminhar apenas conjunto de resultados: first
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.cadastroDisciplina_jsp._jspService(cadastroDisciplina_jsp.java:209)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.sql.SQLException: Operação inválida para encaminhar apenas conjunto de resultados: first
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
oracle.jdbc.driver.BaseResultSet.first(BaseResultSet.java:74)
org.apache.jsp.cadastroDisciplina_jsp._jspService(cadastroDisciplina_jsp.java:143)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
--------------------------------------------------------------------------------
Apache Tomcat/5.5.17
Ola Marcelo, tente fazer desse jeito, não sei se é assim que você esta fazendo.
<%
int tamanho = 0;
DisciplinaDao dDao = new DisciplinaDao();
ResultSet rs = dDao.getDisciplinas();
while (rs.next()) {
tamanho = tamanho + 1;
}
%>
.
.
.
<%
rs.first(); // AQUI QUE DEVE SER INSERIDO O rs.first()
while (rs.next()) {
%>
<option value="<%=rs.getString("nome")%>"><%=rs.getString"nome")%>
</option>
<%
}
%>
cara ! é exatamente desta forma q estou fazendo …