Erro

3 respostas
F

Ola,

O programa que estou fazendo funciona assim: o usuario faz login, e a requisiçao eh encaminha ao controlador.jsp, que instancia o javabean ControladorBean que controla a logica do programa.
O codigo que valida o login dentro de ControladorBean eh este:

protected void processeLogin(){
        
        JogadorBean oJogadorAtual;
        session.removeAttribute("jogAtual");
        proxPagina = "loginInvalido.jsp";
        String nome = request.getParameter("nome");
        String senha = request.getParameter("senha");
        
        if((nome != null) && (senha != null)){
            
            oJogadorAtual = oJogo.valideLogin(nome,senha);
            
            if(oJogadorAtual != null){
                
                session.setAttribute("jogAtual",new JogadorAtualBean(oJogadorAtual));
                proxPagina = "paginaInicial.jsp";
                
            }
        }
    }

Depois que o login eh processado, o controlador.jsp da um <jsp:forward page=’<%= oCtrl.getProxPagina()%>’/>, que no caso leva a paginaInicial.jsp, cujo codigo eh este:

&lt;%--gera a pagina onde o jogo acontece--%&gt;
&lt;%@page contentType="text/html"%&gt;
&lt;%@page pageEncoding="UTF-8"%&gt;

&lt;%--linha que protege o qualquer arquivo contra uso indevido--%&gt;
&lt;jsp&#58;include page="autenticador.jsp"/&gt;
&lt;jsp&#58;useBean id="jogAtual" class="rf.flags.sess.JogadorAtualBean" 
             scope="session"/&gt;
&lt;jsp&#58;useBean id="oJogo" class="rf.flags.app.JogoDasBandeirasBean" 
             scope="application"/&gt;

&lt;%-- Seta uma bandeira sorteada como atributo da sessao--%&gt;             
&lt;%session.setAttribute&#40;"bandAtual",oJogo.sorteieBandeira&#40;&#41;&#41;;%&gt;             
             
&lt;html&gt;
&lt;head&gt;
&lt;%@include file="titulo.html"%&gt;
&lt;/head

&lt;body&gt;
&lt;%@include file="cabecalho.html"%&gt;

&lt;h2&gt; Bem vindo ao Jogo &lt;%=jogAtual.getOJogador&#40;&#41;.getNome&#40;&#41;%&gt;&lt;/h2&gt;

&lt;%--tr define linha, th define cabeçalho p/ linha e td define uma celula
    dentro de tr--%&gt;
    
&lt;table border="1"&gt;
 &lt;tr bgcolor="yellow"&gt;
   &lt;th&gt;Partidas&lt;/th&gt;&lt;th&gt;Acertos&lt;/th&gt;&lt;th&gt;Tentativas&lt;/th&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;&lt;%=jogAtual.getOJogador&#40;&#41;.getNumPartidas&#40;&#41;%&gt;&lt;/td&gt;
     &lt;td&gt;&lt;%=jogAtual.getNumAcertos&#40;&#41;%&gt;&lt;/td&gt;
     &lt;td align="center"&gt;&lt;%=jogAtual.getNumTentativas&#40;&#41;%&gt;&lt;/td&gt;
  &lt;/tr&gt;   
&lt;/table&gt;

&lt;h3&gt; Objetivo do Jogo&lt;/h3&gt;
&lt;p&gt; O objetivo do jogo eh acertar o nome do pais que possui a bandeira indicada abaixo.&lt;/p&gt;

&lt;img src="./flags/&lt;jsp&#58;getProperty name="bandAtual"
                       property="img"/&gt;" border="2"&gt;
&lt;form type=post action=controlador.jsp&gt;
 &lt;input type=text name=pais size=20&gt;
 &lt;input type=hidden name=opcao value=verificar&gt;
 &lt;input type=submit value="Verificar Resposta"&gt; 
&lt;/form&gt;
&lt;form type=post action=controlador.jsp&gt;
 &lt;input type="hidden" name="opcao" value="sair"&gt;
 &lt;input type="submit" value="Sair do Jogo"&gt;
&lt;/form&gt;                    

&lt;/body&gt;
&lt;/html&gt;

O erro que ocorre na paginaInicial.jsp eh este:

An error occurred at line: 7 in the jsp file: /paginaInicial.jsp

Generated servlet error:
[javac] Compiling 1 source file

C:\Documents and Settings\Administrador.netbeans\3.6\jakarta-tomcat-5.0.19_base\work\Catalina\localhost\aplicSessao\org\apache\jsp\paginaInicial_jsp.java:59: JogadorAtualBean(rf.flags.app.JogadorBean) in rf.flags.sess.JogadorAtualBean cannot be applied to ()
jogAtual = new rf.flags.sess.JogadorAtualBean();

Se alguem puder me dizer que erro eh esse ficaria agradecido. Deve ser um erro bem babaca, mas o que interessa eh aprender, certo?

Obrigado,

Fischer

3 Respostas

M

seguinte cara, eu acho q é o construtor do teu bean, verifique se ele tem um construtor padrão, do contrário, forneça um. :slight_smile:

F

Salve Matheus!

Era isso mesmo! O construtor da classe JogadorAtualBean tinha como argumento um JogadorBean. Eu modifiquei o construtor para que nao recebece nenhum argumento e criei um metodo para setar o JogadorBean. Mas confesso que estou confuso, pois nesse exemplo existem varios beans com argumentos em seus construtores. Isso eh um erro? Afinal quando posso usar argumentos nos construtores dos beans?
Ficaria agradecido se voce ou outra pessoa pudesse me esclarecer isso.

Obrigado,

Fischer[/url]

M

ocorro o seguinte, qnd tu usa a tag useBean, ela instancia o seu bean atravez do contrutor padrão, e se o teu bean ja tem outros construtores implementados e nao o padrão, vai dar erro, mas, se tu chamar o useBean ja dando uns setProperty, ele vai chamar o construtor adequado…[/quote]

Criado 19 de setembro de 2004
Ultima resposta 19 de set. de 2004
Respostas 3
Participantes 2