Urgente : nao consigo fazer o jsp ler uma classe

5 respostas
M

E ae pessoal, estou com um problema em Jsp
Tenho um pequeno trabalho da facu e nao consigo chamar uma classe q criei.
A pagina principal eh

Nome :
email:
Gambazes
Bambizes
Peixe
Porcus

depois eu chamo uma chamada sessao
<% @page import =“classes.edu.br.uniban.Usuario” %>

<% Usuario usr = new Usuario(); usr.setNome(request.getParameter("nome"));%> Nome = <%usr.getNome()%> //<%=request.getParameter("nome")%>
<%=request.getParameter("email")%>
<%=request.getParameter("time")%> <% String str = session.getId();%> <%=str%> fiz uma classe para ser usada ela esta no

package classes.edu.br.uniban;

nao consigo concertar o erro q da, parte do erro eh esse

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 1 in the jsp file: /trabalhos/sessao.jsp

Syntax error, insert enum Identifier to complete EnumHeaderName

1: <% <a class="mention" href="/u/page">@page</a> import =classes.edu.br.uniban.Usuario %>

2: 

3:    

4:        <% Usuario usr = new Usuario();
An error occurred at line: 1 in the jsp file: /trabalhos/sessao.jsp

Syntax error, insert EnumBody to complete BlockStatement

1: <% <a class="mention" href="/u/page">@page</a> import =classes.edu.br.uniban.Usuario %>

2: 

3:    

4:        <% Usuario usr = new Usuario();
An error occurred at line: 6 in the jsp file: /trabalhos/sessao.jsp

Syntax error, insert “;” to complete Statement

3:    

4:        <% Usuario usr = new Usuario();

5:         usr.setNome(request.getParameter(nome));%>

6:         Nome = <%usr.getNome()%>

7:        //<%=request.getParameter(nome)%>

8:        


9:        <%=request.getParameter(email)%>

por favor se puderem me ajudar

5 Respostas

Zakim

ola…

ante de mais nada! toda vez que for postar algo, coloque um nome que indique o problema!

Não sei qual o erro

mais vai uma dica :

quais variaveis recebem esses parametros?

<%=request.getParameter("nome")%>
<br>
<%=request.getParameter("email")%>
<br>
<%=request.getParameter("time")%>

deveria ser assim:

<%String nome=request.getParameter("nome");%>
<br>
<%String email=request.getParameter("email");%>
<br>
<%String tempo=request.getParameter("time");%>

valeu

D

Acho que ele resolveu seus problemas?

L

Olá, Marcio Amaro.

Bom, primeiro eu vou te dizer os dois erros que você cometeu e depois te dar uma dica de como melhorar isso daí.

Erro 1 - Olhe a primeira linha, que é onde o Tomcat acusou o erro, você escreveu <% @page, porém é <%@page, sem espaços entre o % e o @.

Erro 2 - Numa linha você escreveu “Nome = <%usr.getNome()%>”, porém a construção com <% … %> é usado apenas para realizar comandos sem gerar saída no HTML, vai acusar o erro de ausência de ponto-e-vírgula, o correto é a construção <%= … %>, que avalia expressões e põe o resultado no HTML, nesse caso não se põe ponto-e-vírgula, portanto fica assim: Nome = <%= usr.getNome() %>

Agora a dica: a maneira como você está fazendo é muito braçal, o JSP possui recursos para facilitar o trabalho. Ao invés de escrever:

<% Usuario usr = new Usuario();
        usr.setNome(request.getParameter("nome"));
        usr.setEmail(request.getParameter("email"));
        usr.setTime(request.getParameter("time"));
 %>

Use:

<jsp:useBean id="usr" class="classes.edu.br.uniban.Usuario" scope="request">
    <jsp:setProperty name="usr" property="*"/>
</jsp:useBean>

O código aí “useBean” vai criar uma variável “usr” da classe Usuário com escopo de request (você poderia usar session ou application), e o código “setProperty” vai setar as propriedades da variável “usr” baseado em valores do formulário enviado, o asterisco significa que todos os valores do formulário que baterem com as propriedades da classe vão ser setados.

Depois, como você usou a useBean, basta usar essa variável usando a expression language:
Assim, ao invés de usar:

Nome: <%= usr.getNome()%>

Use:

Nome: ${usr.nome}

Bem mais fácil.

M

Kras , obrigado pelas respostas, ate q entendimais ou menos o Usebeans, mas nem com um pequeno nao consigo rodar minha classe,eu fiz um exemplo pequeno pra tentar utilizar uma classe, mesmo assim da erro
vai ai minhas paginas e antes de mais nada agradeço:
minha classe:
package edu.br.uniban;

public class Aluno{

public Aluno(){

}

private String nome = " ";

public void setNome(String a){

this.nome = a;

}

public String getNome(){

return this.nome;

}

}

ela esta salva no diretorio abaixo do web-inf\classes\edu\br\uniban e tb esta compilada

a pagina q esta a chamando eh esta
<%@page import = “edu.br.uniban.Aluno”%>

<%Aluno a = new Aluno(); a.setNome("chuchu"); %> o nome do Aluno é <%=a.getNome()%> mesmo assim esta dizendo q nao resolve o tipo, olhem o erro por favor org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 4 in the jsp file: /trabalhos/teste_aluno.jsp

Aluno cannot be resolved to a type

1: <%<a class="mention" href="/u/page">@page</a> import = edu.br.uniban.Aluno%>

2: 

3:      

4:          <%Aluno a = new Aluno();

5:             a.setNome(chuchu);

6:          %>

7:          o nome do Aluno é <%=a.getNome()%>
An error occurred at line: 4 in the jsp file: /trabalhos/teste_aluno.jsp

Aluno cannot be resolved to a type

1: <%<a class="mention" href="/u/page">@page</a> import = edu.br.uniban.Aluno%>

2: 

3:      

4:          <%Aluno a = new Aluno();

5:             a.setNome(chuchu);

6:          %>

7:          o nome do Aluno é <%=a.getNome()%>

Leonardo, agradeço bastante a sua ajuda e vou ver direitinho com se usa o Usebeans
Obrigado a todos

T

Desculpe, mas por favor não duplique seus topicos.

http://www.guj.com.br/posts/list/50115.java

Abraços

Criado 9 de setembro de 2007
Ultima resposta 10 de set. de 2007
Respostas 5
Participantes 5