Onde esta o erro no JSP Beans

2 respostas
V

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("&lt;TR&gt;");
       for(int i=1; i&lt;=columnCount; i++){
      resultado.append("&lt;TD&gt;<B>" + rsmd.getColumnName(i)+ "</B>&lt;/TD&gt;\n");
       }
       resultado.append("&lt;/TR&gt;");
       while(rs.next()){
           resultado.append("&lt;TR&gt;");
           for(int i=1; i&lt;=columnCount; i++){
               resultado.append("&lt;TD&gt;" + rs.getString(i) + "&lt;/TD&gt;");
           }
           resultado.append("&lt;/TABLE&gt;");
       }
       s.close();
       con.close();
       resultado.append("&lt;/TABLE&gt;");
   }
   catch(SQLException e){
       resultado.append("<B>Error</B>");
       resultado.append("&lt;BR&gt;");
       resultado.append(e.toString());
   }
   catch(Exception e){
       resultado.append("<B>Error</B>");
       resultado.append("&lt;BR&gt;");
       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

2 Respostas

T

Olá…

quando vc usa <jsp:getProperty> vc precisa ter um getter definido no seu Bean…

public class Pesquisar {

//private String sql = “”;
private String data = “”;

public void setData(String data){

if(data!=null)

this.data = data;

}
[color=red”]public String getData{

return data;

} [/color]

}

Acho q eh isso!! Faz um teste e posta de novo se der certo.

Abraço.

V

Oh velho indio, valeu mesmo!!!
O erro era esse.
Eu nao sabia disso.

Valeu mesmo

Criado 28 de março de 2005
Ultima resposta 28 de mar. de 2005
Respostas 2
Participantes 2