Ajuda JSP Gravar dados

6 respostas
M

Galera… seguinte, preciso gravar um post que o usuario fizer

entao tenho o método Gravar dentro da classe Daopost

public String gravarpost(Autor autor) throws SQLException {
    Connection con = conexao.getConnection();
    PreparedStatement ps = null;
    try {
        ps = (PreparedStatement) con.prepareStatement("insert into post08110074(autor,titulo,area_post,texto) values(?,?,?,?)");
        ps.setString(1, autor.getAutor().toUpperCase());
        ps.setString(2, autor.getTitulo().toUpperCase());
        ps.setString(3, autor.getArea().toUpperCase());
        ps.setString(4, autor.getTexto().toUpperCase());
        ps.execute();
        ps.close();
        con.close();
        return "Os dados foram gravados com sucesso !";
    } catch (SQLException ex) {
        con.close();
        return "Erro durante a gravação, verifique !";
    }

    }

tenho uma classe Autor

public void gravarpost(){
    try {
        Daoautor dao = new Daoautor();
        dao.gravarpost(this);
    } catch (SQLException ex) {
        Logger.getLogger(Autor.class.getName()).log(Level.SEVERE, null, ex);
    }

}

E a pagina Index

<%

String action = “”;

String textoBotao = Gravar;

//recupera os parametros

String titulo = String.valueOf(request.getParameter(titulo));

String op = String.valueOf(request.getParameter(op));
if (op.equals("Editar")) {
            action = "postdao.jsp?op=editar";
            textoBotao = "Editar";
        }
             if ((titulo != "") && (titulo != "null"))//id!=null
        {
            autor = autor.getPostlike(titulo);  <- -------------------------------------------Da um erro nessa linha
            action = "postdao.jsp?op=Editar";

        } else if (op.equals("exclui")) {
            action = "postdao.jsp?op=excluir";
            textoBotao = "Excluir";

        } else {
            action = "listapost .jsp?op=gravar";
            textoBotao = "Gravar";
        }

%>

Esse método Getpostlike está assim

public ArrayList getPostlike(String titulo) throws SQLException {

ArrayList array = new ArrayList();

Autor a;

Connection con = null;

PreparedStatement ps = null;

try {

con = conexao.getConnection();

String sql =select id, autor from post08110074 where nome like ?”;

ps = (PreparedStatement)con.prepareStatement(sql);

ps.setString(1, % + titulo +"%");

ResultSet rs = ps.executeQuery();

while (rs.next()) {

a = new Autor();

a.setId(rs.getInt(id));

a.setAutor(rs.getString(autor));

array.add(a);

}

rs.close();

ps.close();

} catch (SQLException ex) {

Logger.getLogger(Daoautor.class.getName()).log(Level.SEVERE, null, ex);

}

con.close();

return array;

}

ele da esse erro quando executo o programa

org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP

PWC6197: An error occurred at line: 13 in the jsp file: /index.jsp
PWC6199: Generated servlet error:
string:///index_jsp.java:71: incompatible types
found : java.util.ArrayList<Classes.Autor>
required: Classes.Autor

Alguem sabe me dizer o que é ??? :S

6 Respostas

Diabo_Loiro

primeiro coloca o codigo dentro da tag code. depois verifica a linha 13 no seu jsp

A

Coloca todo código do seu index.jsp e usa a tag para entender. Parece que você criou um java.util.ArrayList<Classes.Autor> e tentou usar um Autor.

[]s

M

Minha pagina index

<%–
Document : index
Created on : 15/11/2010, 12:03:32
Author : Matheus
–%>

<%<a class="mention" href="/u/page">@page</a> contentType=“text/html pageEncoding=UTF-8%>

<jsp:useBean id=“autor” scope=“request” class=“Classes.Autor” />

<jsp:setProperty name=“autor” property="*"  />

<%

//String actyion="pessoadao.jsp?op=novo";
String action="";//vai ser a ação do form;
String textoBotao="Gravar";
//recuperar os parametros da url
String id=String.valueOf(request.getParameter("id"));
String op=String.valueOf(request.getParameter("op"));
if (( id !="") && (id !="null"))//id !=null
{
    autor = autor.getPostlike(id);
    //action="pessoadao.jsp?op="editar";
 }
if (op.equals("editar")){
    action="pessoadao.jsp?op=editar";
    textoBotao="Editar";
}else if (op.equals("excluir")){
    action = "pessoadao.jsp?op=excluir";
    textoBotao="Excluir";
}else {
    action = "pessoadao.jsp?op=novo";
    textoBotao="Gravar";

}
%>

Cadastro de Post

Cadastro de Post

>

Código

Autor

Título

Area

Texto

Sergiorsilva

Antes de enviar os dados selecione todo o conteúdo que contém o código e clica no botão “Code” logo acima da caixa de mensagem, mas antes de tudo visualize seu post.

thorian-maskier

Estou iniciando na área, portanto se eu falar alguma bobagem peço que me corrijam por favor.

Não teria que ter sido dado um <%@page import=“package.Classes.Autor”%> ?

e esse autor é um objeto do tpo ArrayList ou é um objeto do tipo Autor?

Como disse antes, estou iniciando na área, mas meu palpite é que seja isso.

A

Usa a tag code.

No seu código tem um monte de problemas.

String é uma classe, quando você compara objetos use o método equals da classe e também está errado a verificação se o objeto é nulo. Existem outros desse tipo em seu código.
Errado

if (( id !="") && (id !="null"))

Correto

if (id != null && !"".equals(id.trim()))

Se o id não existe se prepare para um Exception.
Errado

String id=String.valueOf(request.getParameter("id"));

Correto

String id=request.getParameter("id");

Falta apostrofe.
Errado

String sql ="select id, autor from post08110074 where nome like ?";
ps = (PreparedStatement)con.prepareStatement(sql);
ps.setString(1, "%" + titulo +"%");

Correto

String sql ="select id, autor from post08110074 where nome like ?";
ps = (PreparedStatement)con.prepareStatement(sql);
ps.setString(1, "'%" + titulo +"%'");

Está correto o essa parte Classes.Autor? Por convenção, nomes de pacotes são todos em caixa baixa.
O erro pode está aqui.

<jsp:useBean id="autor" scope="request" class="Classes.Autor" />
Criado 2 de dezembro de 2010
Ultima resposta 2 de dez. de 2010
Respostas 6
Participantes 5