Caros Amigos,
Eu to tomando uma surra dos beans.
Nos exemplos do livro, o negocio funciona as 1000 maravilha, mas quando eu vou tentar fazer algum da erro.
Segue abaixo um codigo fonte e o erro que o tomcat mostra.
CODIGO JSP
<jsp:useBean id=“theBean” class=“teste.Pesquisar”>
<%
try{
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}
catch(ClassNotFoundException e){
out.println(e.toString());
}
%>
</jsp:useBean>
<jsp:setProperty name=“theBean” property=“data”/>
<html>
<head><title>Página de Busca</title></head>
<body>
<BR><H2>Teste</h2>
<br>
<br><form method=post>
<input type=hidden name=data value=’<jsp:getProperty name=“theBean” property=“data”/>’>
<br>
<input type=submit>
</form>
<br>
<hr>
<br>
<%= theBean.getResultado() %>
</body>
</html>
Agora é o codigo da classe default que eu criei em uma pasta “teste” no diretorio do tomcat (nesta pasta esta todos os exemplos que estavam no livro e estes exemplos funcionaram)
CLASSE PESQUISAR
package teste;
import java.sql.*;
public class Pesquisar {
//private String sql = “”;
private String data = “”;
public void setData(String data){
if(data!=null)
this.data = data;
}
public String getResultado(){
String sql = "select * from noticias where data1 = '" + data + "'";
StringBuffer resultado = new StringBuffer(1024);
try{
Connection con = DriverManager.getConnection("jdbc:odbc:acv");
Statement s = con.createStatement();
ResultSet rs = s.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
resultado.append("<TR>");
for(int i=1; i<=columnCount; i++){
resultado.append("<TD><B>" + rsmd.getColumnName(i)+ "</B></TD>\n");
}
resultado.append("</TR>");
while(rs.next()){
resultado.append("<TR>");
for(int i=1; i<=columnCount; i++){
resultado.append("<TD>" + rs.getString(i) + "</TD>");
}
resultado.append("</TABLE>");
}
s.close();
con.close();
resultado.append("</TABLE>");
}
catch(SQLException e){
resultado.append("<B>Error</B>");
resultado.append("<BR>");
resultado.append(e.toString());
}
catch(Exception e){
resultado.append("<B>Error</B>");
resultado.append("<BR>");
resultado.append(e.toString());
}
return resultado.toString();
}
}
Agora o erro que o tomcat mostra
org.apache.jasper.JasperException: Cannot find a method to read property ‘data’ in a bean of type ‘teste.Pesquisar’
org.apache.jasper.runtime.JspRuntimeLibrary.getReadMethod(JspRuntimeLibrary.java:841)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1013)
org.apache.jasper.compiler.Node$GetProperty.accept(Node.java:1062)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3269)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:244)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:305)
Todas tentativas que eu fiz usando beans resultou nesta mensagem de erro.
Aguardo respostas
vcsmetallica