<%@page contentType=“text/html”%>
<%@page pageEncoding=“UTF-8”%>
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@taglib uri=“http://java.sun.com/jsp/jstl/sql” prefix=“sql”%>
<head>
<!--Criação de um dataSource, que proverá uma conexão ao servidor de banco dados, note que o escopo de conexão está definido como sendo de sessão, dessa forma poderemos usar o mesmo objeto chamado "ds" de qualquer outra página JSP participante do mesmo gerenciamento de sessão.-->
<sql:setDataSource var="ds"
url="jdbc:firebirdsql:localhost/3050:c:/academico.gdb"
user="sysdba"
password="masterkey"
scope="session"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Tela Cadastro - Artigo Manoel Pimentel</title>
</head>
<body>
<h1>Exemplo JSTL - Tela de Cadastro</h1>
<hr>
<form action="gravaCliente.jsp" method="post">
<label>Código </label><br>
<input type="text" name="edtCodigo" size="10"/><br>
<label>Nome: </label><br>
<input type="text" name="edtNome" size="60"/><br>
<label>CPF: </label><br>
<input type="text" name="edtRG" size="15"/><br>
<label>RG: </label><br>
<input type="text" name="edtCPF" size="10"/><br>
<label>Estado: </label><br>
<!--Executa um comando SQL de seleção, gerando um objeto do tipo Result, que é semelhante a classe ResultSet da API JDBC -->
<sql:query var="qryEstados" dataSource="${ds}">
select * from ESTADOS
order by
NOME
</sql:query>
<!--Cria um objeto select (estilho comboBox), preenchendo suas opções com um laço forEach na coleção contida em ?qryEstados.rows?, armazenando cada registro, na variável estado, e acessando a valor de um determinado campo usando a EL(Expression Language) ${estado.nome} -->
<select name="cmbEstados">
<c:forEach var="estado" items="${qryEstados.rows}">
<option value="PA">${estado.nome}</option>
</c:forEach>
</select><br>
<label>Telefone: </label><br>
<input type="text" id="edtTelefone" size="15"/><br>
<label>E-mail: </label><br>
<input type="text" name="edtEmail" size="50"/><br>
<hr>
<input accesskey="o" type="submit" name="btnOK" value="OK">
<input accesskey="c" type="reset" name="btnCancelar" value="Limpar">
</form>
</body>
Erro:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Unable to get connection, DataSource invalid: “java.sql.SQLException: No suitable driver”
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.index_jsp._jspService(index_jsp.java:188)
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:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
root cause
javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: “java.sql.SQLException: No suitable driver”
org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:276)
org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159)
org.apache.jsp.index_jsp._jspx_meth_sql_query_0(index_jsp.java:227)
org.apache.jsp.index_jsp._jspService(index_jsp.java:138)
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:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.
Apache Tomcat/5.5.9
Evandro